148!|| hm_preread_skw ../
starter/source/tools/skew/hm_preread_skw
497!|| iniebcs_propellant_ ../
starter/source/boundary_conditions/ebcs/iniebcs_propellant.f90
540 SUBROUTINE lectur(MULTI_FVM ,LSUBMODEL ,IS_DYNA ,DETONATORS ,EBCS_TAB,
541 . SEATBELT_CONVERTED_ELEMENTS ,NB_SEATBELT_SHELLS ,NB_DYNA_INCLUDE ,USER_WINDOWS ,OUTPUT ,
542 . MAT_ELEM,NAMES_AND_TITLES,DEFAULTS,glob_therm,pblast,
543 . SENSOR_USER_STRUCT,CHECK_USED)
619 USE read_funct_python_mod
623 USE damping_rby_spmdset_mod
624 USE hm_read_preload_axial_mod
625 USE bcs_mod,
ONLY : bcs, bcs_struct_
627 USE shell_offset_ini_mod,
ONLY: shell_offset_ini
628 USE inter_offset_itag_mod,
ONLY:inter_offset_itag
629 USE chk_shell_offset_mod,
ONLY:chk_shell_offset
630 USE shell_offsetp_mod,
ONLY:shell_offsetp
632 USE random_walk_def_mod
633 use constraint_mod ,
only : constraint_,alloc_constraint_struct,dealloc_constraint_struct
634 use split_rwall_mod ,
only : split_rwall
635 use stifint_icontrol_mod,
only : stifint_icontrol
636 use fractal_elem_renum_mod
637 use hm_preread_inivel_mod,
only : hm_preread_inivel
638 use brokmann_random_def_mod
639 use brokmann_elem_renum_mod
641 use hm_read_inivol_mod
643 use iniebcs_propellant_
645 use python_duplicate_nodes_mod
646 use split_bcs_wall_mod ,
only : split_bcs_wall
647 use split_bcs_nrf_mod ,
only : split_bcs_nrf
648 use hm_read_bcs_wall_mod ,
only : hm_read_bcs_wall
649 use hm_read_bcs_nrf_mod ,
only : hm_read_bcs_nrf
650 use element_mod ,
only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
651 use hm_preread_skw_mod,
ONLY : hm_preread_skw
652 use hierarchy_rbody_mod
656#include "implicit_f.inc"
660 TYPE(multi_fvm_struct) :: MULTI_FVM
661 TYPE(SUBMODEL_DATA) :: LSUBMODEL(NSUBMOD)
662 INTEGER,
INTENT(IN) :: IS_DYNA
664 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
665 INTEGER,
INTENT(IN) :: NB_SEATBELT_SHELLS
666 INTEGER,
INTENT(INOUT) :: SEATBELT_CONVERTED_ELEMENTS(3,NB_SEATBELT_SHELLS)
667 INTEGER,
INTENT(IN) :: NB_DYNA_INCLUDE
669 TYPE(output_),
INTENT(INOUT) :: OUTPUT
671 TYPE(defaults_),
INTENT(INOUT) :: DEFAULTS
672 type(glob_therm_) ,
intent(inout) :: glob_therm
673 TYPE(pblast_),
INTENT(INOUT) :: PBLAST
674 TYPE(sensor_user_struct_) :: SENSOR_USER_STRUCT
675 INTEGER,
INTENT(IN) :: CHECK_USED
683#include "hash_id.inc"
684#include "com01_c.inc"
685#include "com04_c.inc"
686#include "com06_c.inc"
687#include "com09_c.inc"
688#include "com10_c.inc"
689#include "com_engcards_c.inc"
690#include "com_xfem1.inc"
692#include "flowcom.inc"
694#include "intstamp_c.inc"
695#include "lagmult.inc"
697#include "param_c.inc"
698#include "remesh_c.inc"
699#include "tabsiz_c.inc"
700#include "tablen_c.inc"
701#include "scr03_c.inc"
702#include "scr05_c.inc"
703#include "scr06_c.inc"
704#include "scr10_c.inc"
705#include "scr12_c.inc"
706#include "scr14_c.inc"
707#include "scr15_c.inc"
708#include "scr16_c.inc"
709#include "scr17_c.inc"
710#include "scr19_c.inc"
711#include "scr23_c.inc"
715#include "ddspmd_c.inc"
716#include "sysunit.inc"
718#include "units_c.inc"
721#include "intread_c.inc"
722#include "elbuf_c.inc"
723#include "userlib.inc"
724#include "drape_c.inc"
725#include "boltpr_c.inc"
726#include "inigrav_c.inc"
727#include "inter18.inc"
728#include "inter22.inc"
729#include "ige3d_c.inc"
730#include "random_c.inc"
742 INTEGER,
DIMENSION(:),
POINTER :: P
745 INTEGER II,I,J,KK,N, NPTS, NMNT, NRTMT_25,MLW,
746 . numel, ifip, is_euler,nb_euler_groups,
747 . nairwa,nthwa, lwaspio, len_g,len_m,len,
748 . iadbuf, iadgeo, nuvar, nuvari,
749 . ns_i7,nel,nd,aux,ns_i21,
751 . svolmon0,flag_goto,
752 . innod,inseg,nsigi, nsigs, nsigsh, nsigsph,
754 . iinu ,nel3d,nel2d,nel1d,imax,jmax,
755 . off, nelem, iddlevel, nelemint,
757 . ids,iun,l_mul_lag,ncmax,nkmax,
759 . maxrtm,lwat, l_mul_lag1,ishif,libagale,
760 . lenthg, lbufmat, lbufgeo, lbufsf,
761 . lnom_opt, lenvolu, ilen, lcne, lcni2g,lenpor,
762 . pm1shf, nfx, aipm, anod, amod, nbno, nbmo,
763 . alm, nels, nelc, neltg, nlgrav, agrvi, agrvr,
764 . nnt, rclen,pm1sph, stat, neldmax, versdd,
765 . dsnism, nslevel,nsdec,nsvmax,nspri,dsarch,nelt,nelp,nsegs,
766 . nnft, ndofmin, nmanim, dsanim,nrcvvois0,nsigrs,
767 . lrbagale,flagg,icount,swaft, swa4, smater, sel2fa,
768 . snfacptx,sixedge,soffx1,snumx1,sxnorm,sinvert,sfunc1,siad,
769 . smas,len_rm,lag_ncf0,lag_nkf0,
770 . lag_nhf0,lag_ncl0,lag_nkl0,maxnnod, ibid,
771 . srtrans,lcne_crkxfem,nsegsmax,xfemon,
772 . in10,in20,snom_opt_old,leni,flag_allocate,
773 . proc_bid,flg_r2r_err,nspcond0,lenthgr,flag_xfem,
774 . iadtabige,ndoublonige,decaligeo,hm_nsensor,
776 . tab_sol(6),istr_24,idel_solid,
777 . lcncnd,i24maxnsne,nsigbeam,nsigtruss,s_loadpinter,
778 . flagf,ithflag,maxrtm_t2,ns_i2,sitage,nctrlmax,inlin,svr_1
779 INTEGER (KIND=8) EMAX
780 INTEGER (KIND=8) K0,K1,K2,K3,K4,K5,K6,K7,K8
782 INTEGER(KIND=8) NUMELCK8
783 INTEGER(KIND=8) NUMELTGK8
784 INTEGER(KIND=8) NUMELSK8
785 INTEGER(KIND=8) NUMELRK8
786 INTEGER(KIND=8) NUMELPK8
787 INTEGER(KIND=8) NUMELTK8
788 INTEGER(KIND=8) NUMELQK8
789 INTEGER(KIND=8) NUMELXK8
790 INTEGER(KIND=8) NUMELIG3DK8
791 INTEGER(KIND=8) NUMSPHK8
792 INTEGER(KIND=8) SVEUL8
796 . iuparam(100),ddstat(50,parasiz),igrnrb2(nrbe2),
800 INTEGER,
DIMENSION(:),
ALLOCATABLE :: POIN_UMP_OLD
801 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAB_UMP_OLD
802 ,
DIMENSION(:),
ALLOCATABLE :: CPUTIME_MP_OLD
804 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: POIN_PART_SHELL,POIN_PART_TRI
805 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: POIN_PART_SOL
806 TYPE(MID_PID_TYPE),
DIMENSION(:),
ALLOCATABLE :: MID_PID_SHELL,MID_PID_TRI
807 TYPE(
mid_pid_type),
DIMENSION(:,:),
ALLOCATABLE :: MID_PID_SOL
810 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
811 * iwcont, iwcin2 , ikine1lag ,dsdof, tagxref,
812 * addcne, addcne_pxfem, fxbtag ,addcne_crkxfem,
815 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
816 * ISOLNOD,ISOLOFF,ISHEOFF,ITRUOFF,IPOUOFF,
817 * IRESOFF,ITRIOFF,IGRNRBY,IQUAOFF
819 INTEGER(KIND=8) :: KVOISPH8,NUMSPH8,SIXSP8,LIMIT8
820 INTEGER :: INTEGER_LIMIT32
822 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CEP,CEL,CNE,
823 . cni2, celi2, cepi2,
824 . cepsp, celsph, itagsh,
825 . cne_pxfem,cel_pxfem
826 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FXBIPM, , FXBELM,
827 . FXBGRVI, EIGIPM, EIGIBUF,
832 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: ELDOM
833 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CEPTMP, NELDOM
834 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LLL
835 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ELSUB
836 INTEGER(KIND=8) ,
TARGET :: DSMEMORY(7,NSPMD)
837 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FXANI,IWORKSH, FXB_MATRIX_ADD
838 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FASTAG,SEGTAG
839 INTEGER(KIND=8),
TARGET :: MEMFLOW(2,NSPMD)
840 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IFLOW
842 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KINWORK
844 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CNE_CRKXFEM,CEL_CRKXFEM,ITAGN,ITAGE,CEP_CRKXFEM,IEDGE_TMP0,CRKNODIAD
845 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IEDGE_TMP
847 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NALE_R2R
848 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FRONTB_R2R
850 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IXS_S ,IXS_S_IND,
851 2 ixq_s,ixq_s_ind,ixc_s,ixc_s_ind,
852 3 ixt_s ,ixt_s_ind,ixp_s,ixp_s_ind,ixr_s,ixr_s_ind,
856 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUFSSG_IO, RESERVEP
858 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IXR_KJ,R_SKEW
861 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBEAM_VECTOR
862 my_real,
DIMENSION(:,:),
ALLOCATABLE :: RBEAM_VECTOR
865 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SOL2SPH_TYP
867 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBCSCYC,LBCSCYC,ITAGCYC
869 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: QP_IPERTURB,RBY_MSN
871 . ,
DIMENSION(:,:),
ALLOCATABLE :: qp_rperturb,rby_iniaxis
874 . eanit2(10),cost_r2r,totmas
879 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS
880 EXTERNAL omp_get_thread_num, omp_get_num_threads
884 . ,
DIMENSION(:),
ALLOCATABLE ::
885 . fxbrpm, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm,
886 . fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbsig,
887 . fxbgrvr, eigrpm ,rmstifn, rmstifr,stiffn,
888 . ms_ply0, zi_ply0,msz20,msz2,lelx,fxb_matrix
890 . ,
DIMENSION(:,:),
ALLOCATABLE :: mbufel, mdepl,rnoise
892 . ,
DIMENSION(:),
ALLOCATABLE :: rflow,cmerge,dnull
894 . probint, flrec6(6), dscutfrq
895 my_real,
DIMENSION(:),
ALLOCATABLE ::
896 . xfiltr,stfac,fric_p,frigap,
i2rupt,areasl,thk_part,
899 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: xrefc,xreftg,xrefs
900 my_real,
DIMENSION(:),
ALLOCATABLE :: xyzref
902 my_real,
DIMENSION(:),
ALLOCATABLE :: dt_r2r
903 TYPE(
intersurfp) ,
DIMENSION(:,:),
ALLOCATABLE :: INTERCEP
905 my_real,
DIMENSION(:),
ALLOCATABLE :: sh4ang,sh3ang
906 my_real,
DIMENSION(:),
ALLOCATABLE :: ms_b,in_b,dtelem
908 TYPE (STACK_PLY) :: STACK
910 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDRAPEID,PERTURB
911 TYPE (FVM_INIVEL_STRUCT),
DIMENSION(:),
ALLOCATABLE :: FVM_INIVEL
912 TYPE (FAILWAVE_STR_) :: FAILWAVE
913 TYPE (NLOCAL_STR_) :: NLOC_DMG
914 TYPE (PINCH) :: PINCH_DATA
915 TYPE (DRAPE_) ,
DIMENSION(:),
ALLOCATABLE :: DRAPE,DRAPE_WRK
916 TYPE (DRAPEG_) :: DRAPEG
917 TYPE(
drape_work_) ,
DIMENSION(:),
ALLOCATABLE :: IWORK_T
919 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGOSET
920 my_real,
DIMENSION(:),
ALLOCATABLE,
TARGET :: xyz
921 my_real,
DIMENSION(:),
POINTER :: x_c
923 INTEGER,
DIMENSION(:),
ALLOCATABLE :: EBCS_TAG_CELL_SPMD
925 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
926 TYPE (INTERFACES_) :: INTERFACES
927 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
931 CHARACTER(LEN=4096) :: SCR_FILE_NAME
932 CHARACTER(LEN=ncharline) :: RLINE
933 CHARACTER (LEN=4) :: CWIN
934 LOGICAL :: IS_AVAILABLE
935 INTEGER NLINES,NUSERWI,USERWI_ID
936 INTEGER SCR_FILE_NAME_LEN
937 CHARACTER(LEN=ncharkey) :: KEY
939 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IXSPS
940 LOGICAL MAT20_DISCRETE_FILL
941 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FLAG_ELEM_INTER25
942 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LIST_NIN25
943 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISKEW_TMP
944 my_real,
DIMENSION(:),
ALLOCATABLE :: skew_tmp
951 TYPE :: int_ptr_array
952 INTEGER,
DIMENSION(:),
POINTER :: ptr
953 END
TYPE int_ptr_array
954 TYPE(int_ptr_array) :: IBUFTMP(0:1),NIGE_TMP(0:1)
955 TYPE :: real_ptr_array
956 my_real,
DIMENSION(:),
POINTER :: ptr2
957 END TYPE real_ptr_array
958 TYPE(real_ptr_array) :: RIGE_TMP(0:1),XIGE_TMP(0:1),
960 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
962 . iwork,itri,ksysusr,ptshel,ptsh3n,ptsol,ptquad,
963 . ptsph,isptag,dd_tmp,itag,itagnd_shxfem,
964 . ithpart,ithsub,ithbuftmp,dd_tmp2,
966 . ptspri,ptbeam,pttruss
967 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IPARGTMP
970 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAB_UMP_LOC
971 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: TAB_UMP_LOC2
972 INTEGER,
DIMENSION(:),
POINTER ::
973 . ipartth,iparts,ipartq,ipartc,ipartt,ipartp,ipartr,
974 . ipartg,ipartx,ipartsp,npc1,ixs10,ixs20,ixs16,ipres,
975 . ibmpc2,ibmpc3,ibmpc4,iwork2,
976 . itri1,itri2,itri3,index,
977 . index1,index2,iwd,iweig,inum,eadd,itr1,itr2,xep,
978 . ipartthi,ipartig3d,iedgesh4,iedgesh3,ielcrk4,ielcrk3
979 INTEGER BID13(1),SNPC1
980 INTEGER L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,SIXTG0,
981 . SIXS0,SIXS10,SIXS20,,SIWORK,SIWORK2,,
982 . numcld,numpres,numlink,numgrav,numrbymou,
983 . snrbody,slrbody,lithpart,lithsub,idx,idx1,idx2,idxcnt,
984 . lithbufi,lithbufmx,nthgrpmx,sindex,sitri,ldd_iad,
985 . lsigi,lsigsh,lsigsp,lsigsph,sinscr,
986 . sipart0,sipartth,siparts,sipartq,sipartc,sipartt,sipartp,
987 . sipartr,sipartg,sipartx,sipartsp,iter,
988 . lixint,sbufale,nvartot,
989 . nvartot0,nvartotmax,nvarabf,
990 . pixs10,pixs16,pixs20,numcfield,numloadp,ixel,
991 . sipartig3d,idxige1,idxige2,
992 . idxigecnt,tagsurfige,lsigrs,lsigbeam,lsigtruss,nsetfrictot,
993 . iorthfricmax,coefslen,npfricorth,ngrpf,leng,
994 . nimpdisp,nimpvel,nimpacc,nimpv_lagm,nfv0,nsetmax,nfxvel0
995 TYPE(
cluster_),
DIMENSION(:),
ALLOCATABLE :: CLUSTERS
996 TYPE(INTBUF_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_TAB
997 TYPE(SCRATCH_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: INSCR
999 INTEGER SIPRELOAD, SPRELOAD
1002 TYPE(elbuf_struct_),
DIMENSION(:) ,
ALLOCATABLE :: ELBUF_TAB
1003 TYPE(ELBUF_STRUCT_),
DIMENSION(:,:),
ALLOCATABLE :: XFEM_TAB
1004 TYPE(MLAW_TAG_) ,
DIMENSION(:) ,
ALLOCATABLE,
TARGET :: MTAG_INI,MTAG_R2R
1005 TYPE(
mlaw_tag_) ,
DIMENSION(:) ,
POINTER :: MLAW_TAG
1006 TYPE(
eos_tag_) ,
DIMENSION(:) ,
ALLOCATABLE :: EOS_TAG
1007 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
1008 TYPE(
fail_tag_) ,
DIMENSION(0:MAXFAIL) :: FAIL_TAG
1010 TYPE (XFEM_SHELL_) ,
DIMENSION(:),
ALLOCATABLE :: CRKSHELL
1011 TYPE (XFEM_LVSET_) ,
DIMENSION(:),
ALLOCATABLE :: CRKLVSET
1012 TYPE (XFEM_SKY_) ,
DIMENSION(:),
ALLOCATABLE :: CRKSKY
1013 TYPE (XFEM_AVX_) ,
DIMENSION(:),
ALLOCATABLE :: CRKAVX
1014 TYPE (XFEM_EDGE_) ,
DIMENSION(:),
ALLOCATABLE :: CRKEDGE
1015 TYPE(
xfem_phantom_),
DIMENSION(:),
ALLOCATABLE :: XFEM_PHANTOM
1018 TYPE(int8_struct_) ,
DIMENSION(:,:),
ALLOCATABLE :: INTERT8
1020 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_CRK
1021 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PERMIGE
1024 TYPE(matparam_struct_) ,
DIMENSION(:),
ALLOCATABLE ,
TARGET :: MPARAM_INI,MPARAM_R2R
1026 TYPE(group_param_) ,
DIMENSION(:),
ALLOCATABLE :: GROUP_PARAM_TAB
1028 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: T2MAIN_SMS
1030 INTEGER :: SRNOISE1,SRNOISE2
1032 INTEGER NSN_MULTI_CONNEC
1033 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: T2_NB_CONNEC
1035 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MGRBY
1039 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: TAG_SKINS6
1040 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: SEATBELT_SHELL_TO_SPRING
1042 INTEGER :: NPRELOAD_A
1043 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_SPRING
1044 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_BEAM
1045 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ITAGPRLD_TRUSS
1046 TYPE(
prel1d_),
DIMENSION(:),
ALLOCATABLE :: PRELOAD_A
1047 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IPRELOAD_FUN
1051 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: DBRWORK
1052 my_real,
DIMENSION(:),
ALLOCATABLE ::
1053 . RWORK,STIFINT,MWA,MSS,MSSX,MSSF,MSQ,MSR,
1054 . inp,inr,ins,vns,vnsx,stc,stt,stp,str,sttg,stur,
1055 . bns,bnsx,volnod,bvolnod,etnod,nshnod,xelemwa,
1056 . xnum,xtmp,rtrans,msig3d,stifintr,strc,
strr,strp,strtg,
1060 my_real,
DIMENSION(:),
POINTER ::
1061 . thkec,eanit,pres,wma
1065 CHARACTER(LEN=NCHARLINE) ::ERR_MSG
1066 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBORDEDGE,INOM_OPT
1067 DOUBLE PRECISION RSIBUFSSG,RNIGE,RRIGE,RXIGE,RVIGE
1068 INTEGER INTMAX, LLINAL,
1070 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ICNDS10,ITAGND,ADDCNCND,
1071 . cncnd, celcnd, cepcnd
1074 INTEGER(KIND=8) ,
POINTER :: pMEMFLOW
1076 DATA INTMAX /2147483647/
1078 .
DIMENSION(:),
ALLOCATABLE :: fillsol
1081 CHARACTER FILNAM*512,CLAW*4
1084 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADBOXMAX_NODE,IADBOXMAX_SURF,
1085 . iadboxmax_line,iadboxmax_elem
1087 my_real,
DIMENSION(:,:),
ALLOCATABLE ::
1088 . sigi,sigsh,sigsp,sigsph,sigrs,sigbeam,sigtruss
1089 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1090 . strsglob,straglob,orthoglob
1091 INTEGER ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),IUSOLYLD,IUSERL
1093 INTEGER FVMAIN(NVOLU + NMONVOL),NBSUBMAT
1095 INTEGER :: MEM_MARGIN
1096 parameter(mem_margin = 250000)
1098 TYPE(intbuf_fric_struct_),
DIMENSION(:),
ALLOCATABLE :: INTBUF_FRIC_TAB
1099 INTEGER,
DIMENSION(:),
ALLOCATABLE ::TABCOUPLEPARTS_FRIC_TMP,TABPARTS_FRIC_TMP,
1100 . TAGPRT_FRIC,NSETINIT,IFRICORTH_TMP,
1101 . pfricorth ,irepforth ,lengrpf
1102 my_real,
DIMENSION(:),
ALLOCATABLE ::tabcoef_fric_tmp , vforth ,phiforth
1104 TYPE(),
DIMENSION(:),
ALLOCATABLE :: INIMAP2D
1106 TYPE(python_) :: PYTHON
1108 LOGICAL :: FLAG_24_25
1109 INTEGER :: NINDX_NM,NINDX_SCRT,I24MAXNSNE2
1110 INTEGER,
DIMENSION(NSPMD) :: NUMNOD_L
1111 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_NM,INDX_NM
1112 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_SCRATCH,INDX_SCRT
1114 INTEGER FXB_LAST_ADDRESS(10)
1115 CHARACTER,
DIMENSION(:),
ALLOCATABLE :: FXBFILE_TAB*2148
1130 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_SKN
1131 TYPE(SKEW_) :: SKEWS
1132 TYPE (SENSOR_STR_) ,
DIMENSION(:) ,
ALLOCATABLE :: SENSOR_TMP
1145 TYPE(
surf_),
DIMENSION(:,:),
ALLOCATABLE :: IGRSURF_PROC
1153 INTEGER :: GRNOD_UID
1154 INTEGER,
DIMENSION(NSPMD) :: SIZE_ALE_ELM
1155 TYPE(split_cfd_type),
DIMENSION(:),
ALLOCATABLE :: ALE_ELM
1161 INTEGER :: LEN_TMP_NAME
1162 CHARACTER(len=4096) :: TMP_NAME
1168 TYPE(),
DIMENSION(:),
ALLOCATABLE :: T_MONVOL
1169 TYPE(MONVOL_METADATA_) :: T_MONVOL_METADATA
1170 TYPE(t_ale_connectivity) :: ALE_CONNECTIVITY
1172 INTEGER :: NBR_TH_MONVOL,NBR_TH_MONVOL01(9)
1174 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IRAND
1175 my_real,
DIMENSION(:),
ALLOCATABLE :: alea,xseed
1184 LOGICAL :: BOOL_ALE_TG
1185 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_S,INDX_Q,INDX_TG
1186 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG
1191 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
1194 TYPE (LOADS_) :: LOADS
1195 TYPE (LOADS_),
DIMENSION(NSPMD) :: LOADS_PER_PROC
1198 TYPE (bcs_struct_),
DIMENSION(NSPMD) :: BCS_PER_PROC
1205 INTEGER NMERGE_NODE_CAND,NMERGE_NODE_DEST,NMERGE_TOT
1206 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MERGE_NODE_TAB
1207 my_real,
DIMENSION(:),
ALLOCATABLE :: MERGE_NODE_TOL
1209 my_real,
DIMENSION(:),
ALLOCATABLE :: dgapint, intgaploadp ,dgaploadint
1211 INTEGER NB_MAT_SEATBELT,NB_MAT
1213 INTEGER :: NUMSH3,NUMSH4, NSLICE,NPT_DRAPE,JJ,ISL, IP,IE, IDSHEL
1214 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: INDXSH
1215 INTEGER :: NUMBER_LOAD_CYL
1216 INTEGER :: S_NOD2ELS,S_NOD2ELTG,S_NOD2EL1D
1218 INTEGER :: NDAMP_VREL_RBY
1219 INTEGER :: NDAMP_FREQ_RANGE
1220 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: DAMP_RANGE_PART
1222 INTEGER :: PRE_SEARCH,SZ_INTP_DIST
1223 my_real :: max_intp_dist_part
1226 TYPE (FAIL_FRACTAL_) :: FAIL_FRACTAL
1227 TYPE (FAIL_BROKMANN_) :: FAIL_BROKMANN
1228 INTEGER DEF_INTER(100)
1230 type(constraint_) :: constraint_struct
1233 my_real,
DIMENSION(:),
ALLOCATABLE :: rwstif_pen
1236 python%NB_FUNCTS = 0
1237 python%NB_SENSORS = 0
1239 ddstat(1:50,1:parasiz)=0
1241 fvmain(1:nvolu + nmonvol) = 0
1245 err_category=
'INTERNAL'
1246 CALL trace_in1(err_msg,len_trim(err_msg))
1269 ndamp_freq_range = 0
1291 def_inter(1:100) = defaults%interface%DEF_INTER(1:100)
1299 inter18_autoparam = 0
1300 inter18_is_variable_gap_defined = .false.
1302 ALLOCATE(ebcs_tag_cell_spmd(numelq+numeltg+numels))
1304 ALLOCATE(eos_tag(0:
maxeos))
1308 ALLOCATE(intercep(3,ninter))
1311 NULLIFY(intercep(1,i)%P)
1312 NULLIFY(intercep(2,i)%P)
1313 NULLIFY(intercep(3,i)%P)
1331 ALLOCATE(iwcont(5*numnod),stat=stat)
1332 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1336 ALLOCATE(iwcin2(2*numnod),stat=stat)
1337 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1342 ALLOCATE(ikine1lag(3*numnod),stat=stat)
1343 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1346 ikine1lag(1:3*numnod)=0
1348 ALLOCATE(dsdof(numnod),stat=stat)
1349 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1354 ALLOCATE( addcne(0:numnod+1),stat=stat)
1355 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1359 ALLOCATE(addcne_pxfem(0:numnod +1),stat=stat)
1360 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1362 . c1=
'ADDCNE_PXFEM')
1366 ALLOCATE(fxbtag(numnod),fxbipm(nbipm*nfxbody),stat=stat)
1367 fxbipm(1:nbipm*nfxbody) = zero
1368 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1372 ALLOCATE(fxbfile_tab(nfxbody))
1375 ALLOCATE(fxbtag(1),fxbipm(1),stat=stat)
1376 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1379 ALLOCATE(fxbfile_tab(0))
1382 ALLOCATE(isolnod(numels),stat=stat)
1383 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1386 ALLOCATE(isoloff(numels),stat=stat)
1387 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1390 ALLOCATE(isheoff(numelc),stat=stat)
1391 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1394 ALLOCATE(itruoff(numelt),stat=stat)
1395 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1398 ALLOCATE(ipouoff(numelp),stat=stat)
1399 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1402 ALLOCATE(iresoff(numelr),stat=stat)
1403 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1406 ALLOCATE(itrioff(numeltg),stat=stat)
1407 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1410 ALLOCATE(igrnrby(nrbody),stat=stat)
1411 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1414 igrnrby(1:nrbody) = 0
1415 ALLOCATE(iquaoff(numelq),stat=stat)
1416 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1423 len_g = npropgi*numgeo
1424 len_m = npropmi*nummat
1425 ALLOCATE(
igeo(len_g),stat=stat)
1426 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1429 ALLOCATE(
ipm(len_m),stat=stat)
1430 IF(stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
1442 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1451 err_category=
'INTERNAL'
1469 ALLOCATE(
ifront%IENTRY(numnod),stat=stat)
1472 ALLOCATE(
ientry2(numnod),stat=stat)
1474 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1479 ALLOCATE(
flagkin(numnod),stat=stat)
1481 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
1486 IENTRY2(1:NUMNOD) = -1
1487 FLAGKIN(1:NUMNOD) = 0
1494 CALL LECSEC0(LSUBMODEL)
1499 CALL HM_PREREAD_IMPVEL0(IMPOSE_DR,UNITAB,LSUBMODEL) !read /IMPDISP
1507 SVR = 3*NUMNOD*MAX(IRODDL,IRODDL0)
1508 SVR_1 = NUMNOD*MAX(IRODDL,IRODDL0)
1509 STHKE = NUMELC+NUMELTG
1512 SIN = NUMNOD*MAX(IRODDL,IRODDL0)
1513.OR..OR..OR.
IF(ISECUT>0 IISROT>0 IMPOSE_DR>0 IDROT == 1) THEN
1514 SDR = 3*NUMNOD*MAX(IRODDL,IRODDL0)
1518 IF(FLAG_GOTO == 1) GOTO 258
1521 SDAMPR = NRDAMP*NDAMP
1522 SDAMP = 3*(1+MAX(IRODDL,IRODDL0))*NUMNOD
1523 CALL HM_OPTION_COUNT('/damp/frequency_range
',NDAMP_FREQ_RANGE)
1524 IF (NDAMP == NDAMP_FREQ_RANGE) SDAMP = 0
1525 ALLOCATE(DAMPR(SDAMPR+SDAMP) ,STAT=stat)
1526 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1529 DAMP => DAMPR(SDAMPR+1:SDAMPR+SDAMP)
1534 ALLOCATE(DAMPR(SDAMPR) ,STAT=stat)
1535 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1538 ALLOCATE(DAMP(SDAMP) ,STAT=stat)
1539 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1543 ALLOCATE(DAMP_RANGE_PART(NPART),STAT=stat)
1544 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1546 . C1='damp_range_part
')
1548 ALLOCATE(X(SX) ,STAT=stat)
1549 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1552 ALLOCATE(D(SD) ,STAT=stat)
1553 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1556 ALLOCATE(V(SV) ,STAT=stat)
1557 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1560 ALLOCATE(VR(SVR) ,STAT=stat)
1561 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1564 ALLOCATE(DR(SDR) ,STAT=stat)
1565 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1567 ALLOCATE(THKE(STHKE) ,STAT=stat)
1568 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1571 ALLOCATE(MS(SMS) ,STAT=stat)
1572 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1575 ALLOCATE(IN(SIN) ,STAT=stat)
1576 ALLOCATE(XYZREF(SX) ,STAT=stat)
1577 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1580 ALLOCATE(SH4ANG(NUMELC) ,STAT=stat)
1581 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1584 ALLOCATE(SH3ANG(NUMELTG) ,STAT=stat)
1585 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1598258 IF(NUMELC<STHKE) THEN
1599 THKEC => THKE(NUMELC+1:STHKE)
1603.AND.
IF ((STHKE > 0)(FLAG_GOTO==0)) THKE = 0
1604 IF(NUMELC > 0) SH4ANG = 0
1605 IF(NUMELTG > 0) SH3ANG = 0
1607 CALL NBFUNCT(NFUNCT,NTABLE,NPTS,LSUBMODEL)
1614 SISKWN = LISKN*((NUMSKW+1)+MIN(IUN,NSPCOND)*NUMSPH+(NUMFRAM+1)+NSUBMOD)
1615 SIFRAME = LISKN*(NUMFRAM+1)
1618 SIPART0 = LIPART1*NPART+LIPART1*NTHPART
1619 SIPARTTH= 2*9*NPART+2*9*NTHPART
1629 SIPARTIG3D = NUMELIG3D
1630 SIPART = SIPART0+SIPARTTH+SIPARTS+SIPARTQ+SIPARTC+SIPARTT+SIPARTP
1631 . + SIPARTR+SIPARTG+SIPARTX+SIPARTIG3D+SIPARTSP
1632 NUMEL = NUMELS+NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR
1633 . + NUMELTG+NUMELX+NUMSPH+NUMELIG3D
1636 SIXTG0 = NIXTG*NUMELTG
1640 SIXS20 = NUMELS20*12
1642 SIXS = SIXS0+SIXS10+SIXS20+SIXS16
1650 SGJBUFI = LKJNI*NGJOINT
1653 SNOM_OPT1= NRBODY+NACCELM+NVOLU+NMONVOL+NINTER+NINTSUB+
1654 + NRWALL+NJOINT+NSECT+NLINK+
1655 + NUMSKW+1+NUMFRAM+1+NFXBODY+NFLOW+NRBE2+
1656 + NRBE3+NSUBMOD+NFXVEL+NUMBCS+NUMMPC+
1657 + NGJOINT+NUNIT0+NFUNCT+NADMESH+
1658 + NSPHIO+NSPCOND+NRBYKIN+NEBCS+
1659 + NINICRACK+NODMAS+NBGAUGE+NCLUSTER+NINTERFRIC+
1660 + NRBMERGE+NUMBCSN+NSLIPRING+NRETRACTOR
1661 SNOM_OPT = SNOM_OPT1*LNOPT1+1
1663 SNOM_SECT= ncharline*NSECT
1664 IF(FLAG_GOTO==1) GOTO 209
1667 ALLOCATE(ICODE(SICODE) ,STAT=stat)
1668 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1671 ALLOCATE(ISKEW(SISKEW) ,STAT=stat)
1672 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1675 ALLOCATE(ISKWN(SISKWN) ,STAT=stat)
1676 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1679 ALLOCATE(IBCSLAG(SIBCSLAG) ,STAT=stat)
1680 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1683 ALLOCATE(IPART(SIPART) ,STAT=stat)
1684 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1687 ALLOCATE(NPC (SNPC) ,STAT=stat)
1688 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1691 ALLOCATE(IXTG(SIXTG) ,STAT=stat)
1692 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1695 ALLOCATE(IXS(SIXS) ,STAT=stat)
1696 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1699 ALLOCATE(IXQ(SIXQ) ,STAT=stat)
1700 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1703 ALLOCATE(IXC(SIXC) ,STAT=stat)
1704 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1707 ALLOCATE(IXT(SIXT) ,STAT=stat)
1708 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1711 ALLOCATE(IXP(SIXP) ,STAT=stat)
1712 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1715 ALLOCATE(IXR(SIXR) ,STAT=stat)
1716 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1719 ALLOCATE(ITAB(SITAB) ,STAT=stat)
1720 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1723 ALLOCATE(ITABM1(SITABM1) ,STAT=stat)
1724 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1727 ALLOCATE(GJBUFI(SGJBUFI) ,STAT=stat)
1728 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1731 ALLOCATE(LACCELM(SLACCELM) ,STAT=stat)
1732 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1736 ALLOCATE(NOM_OPT(SNOM_OPT) ,STAT=stat)
1737 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1740 ALLOCATE(INOM_OPT(0:SINOM_OPT) ,STAT=stat)
1741 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1744 ALLOCATE(NOM_SECT(SNOM_SECT) ,STAT=stat)
1745 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1748 ALLOCATE(IXR_KJ(5*(NUMELR+1)) ,STAT=stat)
1749 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1752 ALLOCATE(IWORKSH(3,NUMELC+NUMELTG) ,STAT=stat)
1753 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1756 IF(NUMELIG3D > 0) THEN
1757 ALLOCATE(WIGE(NUMNOD) ,STAT=stat)
1758 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1763 ALLOCATE(WIGE(0) ,STAT=stat)
1765 ALLOCATE(R_SKEW(NUMELR) ,STAT=stat)
1766 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1770 ALLOCATE(IBEAM_VECTOR(NUMELP) ,STAT=stat)
1771 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1773 . C1='ibeam_vector
')
1774 ALLOCATE(RBEAM_VECTOR(3,NUMELP) ,STAT=stat)
1775 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
1777 . C1='rbeam_vector
')
1779.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)== 4ABS(ISIGI)==5)THEN
1780 ALLOCATE (PTSHEL(NUMELC) ,STAT=stat)
1782 ALLOCATE (PTSH3N(NUMELTG) ,STAT=stat)
1785 ALLOCATE (PTSHEL(0) ,STAT=stat)
1786 ALLOCATE (PTSH3N(0) ,STAT=stat)
1789 IF(SICODE > 0) ICODE = 0
1790 IF(SISKEW > 0) ISKEW = 0
1791 IF(SISKWN > 0) ISKWN = 0
1792 IF(SIBCSLAG > 0) IBCSLAG = 0
1793 IF(SIPART > 0) IPART = 0
1794 IF(SNPC > 0) NPC = 0
1795 IF(SITAB > 0) ITAB = 0
1796 IF(SITABM1 > 0) ITABM1 = 0
1797 IF(SGJBUFI > 0) GJBUFI = 0
1798 IF(SLACCELM > 0) LACCELM = 0
1799 IF(SNOM_OPT > 0) NOM_OPT = 0
1800 IF(SINOM_OPT > 0) INOM_OPT = 0
1801 IF(NUMELR > 0) IXR_KJ = 0
1802 IF(NUMELC+NUMELTG > 0) IWORKSH = 0
1803 IF(NUMELR > 0) R_SKEW = 0
1804 IF(NUMELP > 0) IBEAM_VECTOR(1:NUMELP) = ZERO
1805 IF(NUMELP > 0) RBEAM_VECTOR(1:3,1:NUMELP) = ZERO
1808 IF(SISKWN-SIFRAME<SISKWN) THEN
1809 IFRAME => ISKWN(SISKWN-SIFRAME+1:SISKWN)
1814 ! ---------------------
1815 INTER_CAND%S_IXINT_2 = 0
1816 ALLOCATE( INTER_CAND%ADDRESS(NINTER+1) )
1817 INTER_CAND%ADDRESS(1:NINTER+1) = 0
1818 ! ---------------------
1820!--- NEW DATA STRUCTE ALLOCATION FOR GROUPS OF ENTITIES
1821 ALLOCATE(SUBSETS(NSUBS))
1822 SUBSETS(1:NSUBS)%ID=0
1823 ALLOCATE(IGRNOD(NGRNOD+NSETS))
1824 ALLOCATE(IGRBRIC(NGRBRIC+NSETS))
1825 ALLOCATE(IGRQUAD(NGRQUAD+NSETS))
1826 ALLOCATE(IGRSH4N(NGRSHEL+NSETS))
1827 ALLOCATE(IGRSH3N(NGRSH3N+2*NSETS))
1828 ALLOCATE(IGRTRUSS(NGRTRUS+NSETS))
1829 ALLOCATE(IGRBEAM(NGRBEAM+NSETS))
1830 ALLOCATE(IGRSPRING(NGRSPRI+NSETS))
1831 ALLOCATE(IGRPART(NGRPART+NSETS))
1832 ALLOCATE(IGRSURF(NSURF+NSETS))
1833 ALLOCATE(IGRSURF_PROC(NSURF+NSETS,NSPMD))
1834 ALLOCATE(IGRSLIN(NSLIN+NSETS))
1835 IGRNOD(1:NGRNOD+NSETS)%ID = 0
1836 IGRNOD(1:NGRNOD+NSETS)%NENTITY = 0
1837 IGRNOD(1:NGRNOD+NSETS)%GRTYPE = 0
1838 IGRNOD(1:NGRNOD+NSETS)%SORTED = 0
1839 IGRNOD(1:NGRNOD+NSETS)%GRPGRP = 0
1840 IGRNOD(1:NGRNOD+NSETS)%LEVEL = 0
1841 IGRNOD(1:NGRNOD+NSETS)%R2R_ALL = 0
1842 IGRNOD(1:NGRNOD+NSETS)%R2R_SHARE = 0
1846 IGRBRIC(1:NGRBRIC+NSETS)%NENTITY = 0
1847 IGRQUAD(1:NGRQUAD+NSETS)%NENTITY = 0
1848 IGRSH4N(1:NGRSHEL+NSETS)%NENTITY = 0
1849 IGRSH3N(1:NGRSH3N+2*NSETS)%NENTITY = 0
1850 IGRTRUSS(1:NGRTRUS+NSETS)%NENTITY = 0
1851 IGRBEAM(1:NGRBEAM+NSETS)%NENTITY = 0
1852 IGRSPRING(1:NGRSPRI+NSETS)%NENTITY = 0
1853 IGRPART(1:NGRPART+NSETS)%NENTITY = 0
1854!-- variable initialization to not printout the empty SET groups
1855 IGRNOD(1:NGRNOD+NSETS)%SET_GROUP = 0
1856 IGRBRIC(1:NGRBRIC+NSETS)%SET_GROUP = 0
1857 IGRQUAD(1:NGRQUAD+NSETS)%SET_GROUP = 0
1858 IGRSH4N(1:NGRSHEL+NSETS)%SET_GROUP = 0
1859 IGRSH3N(1:NGRSH3N+2*NSETS)%SET_GROUP = 0
1860 IGRTRUSS(1:NGRTRUS+NSETS)%SET_GROUP = 0
1861 IGRBEAM(1:NGRBEAM+NSETS)%SET_GROUP = 0
1862 IGRSPRING(1:NGRSPRI+NSETS)%SET_GROUP = 0
1863 IGRPART(1:NGRPART+NSETS)%SET_GROUP = 0
1864 IGRSURF(1:NSURF+NSETS)%SET_GROUP = 0
1865 IGRSLIN(1:NSLIN+NSETS)%SET_GROUP = 0
1867 IGRSURF(1:NSURF+NSETS)%NSEG = 0
1868 IGRSURF(1:NSURF+NSETS)%NSEG_IGE = 0
1869 IGRSURF(1:NSURF+NSETS)%SET_GROUP = 0
1870 IGRSURF(1:NSURF+NSETS)%NB_MADYMO = 0
1871 IGRSURF(1:NSURF+NSETS)%NSEG_R2R_ALL = 0
1872 IGRSURF(1:NSURF+NSETS)%NSEG_R2R_SHARE = 0
1873 IGRSURF(1:NSURF+NSETS)%EXT_ALL = 0
1875! IF(NBOX > 0) CALL MY_ALLOC(IGRBOX,NBOX)
1889 L12= L11+ SIPARTIG3D
1891 IPARTTH => IPART(L0+1:L1)
1896 IPARTS => IPART(L1+1:L2)
1901 IPARTQ => IPART(L2+1:L3)
1906 IPARTC => IPART(L3+1:L4)
1911 IPARTT => IPART(L4+1:L5)
1916 IPARTP => IPART(L5+1:L6)
1921 IPARTR => IPART(L6+1:L7)
1926 IPARTG => IPART(L8+1:L9)
1931 IPARTX => IPART(L9+1:L10)
1936 IPARTSP=> IPART(L10+1:L11)
1941 IPARTIG3D=> IPART(L11+1:L12)
1945 IF(FLAG_GOTO==1) GOTO 217
1947 IF(NFUNCT+2<=SNPC-NFUNCT) THEN
1948 NPC1 => NPC(NFUNCT+2:SNPC-NFUNCT)
1949 SNPC1 = SNPC-2*NFUNCT+1
1955212 IF(SIXS0+SIXS10>SIXS0) THEN
1956 IXS10 => IXS(SIXS0+1:SIXS0+SIXS10)
1962 IF(SIXS0+SIXS10+SIXS20>SIXS0+SIXS10) THEN
1963 IXS20 => IXS(SIXS0+SIXS10+1:SIXS0+SIXS10+SIXS20)
1968 IF(SIXS>SIXS0+SIXS10+SIXS20) THEN
1969 IXS16 => IXS(SIXS0+SIXS10+SIXS20+1:SIXS)
1975 PIXS10 = MIN(SIXS,SIXS0+1 )
1976 PIXS20 = MIN(SIXS,SIXS0+SIXS10+1 )
1977 PIXS16 = MIN(SIXS,SIXS0+SIXS10+SIXS20+1)
1979 IF(FLAG_GOTO==1) GOTO 213
1982210 INOM_OPT(1) = NRBODY
1983 INOM_OPT(2) = INOM_OPT(1) + NACCELM
1984 INOM_OPT(3) = INOM_OPT(2) + NVOLU + NMONVOL
1985 INOM_OPT(4) = INOM_OPT(3) + NINTER
1986 INOM_OPT(5) = INOM_OPT(4) + NINTSUB
1987 INOM_OPT(6) = INOM_OPT(5) + NRWALL
1988 INOM_OPT(7) = INOM_OPT(6) + 0 !obsolete option removed
1989 INOM_OPT(8) = INOM_OPT(7) + NJOINT
1990 INOM_OPT(9) = INOM_OPT(8) + NSECT
1991 INOM_OPT(10)= INOM_OPT(9) + NLINK
1992 INOM_OPT(11)= INOM_OPT(10)+ NUMSKW+1+NUMFRAM+1+NSUBMOD
1993 INOM_OPT(12)= INOM_OPT(11)+ NFXBODY
1994 INOM_OPT(13)= INOM_OPT(12)+ NFLOW
1995 INOM_OPT(14)= INOM_OPT(13)+ NRBE2
1996 INOM_OPT(15)= INOM_OPT(14)+ NRBE3
1998 INOM_OPT(16)= INOM_OPT(15)+ NFXVEL
1999 INOM_OPT(17)= INOM_OPT(16)+ NUMBCS + NUMBCSN
2000 INOM_OPT(18)= INOM_OPT(17)+ NUMMPC
2001 INOM_OPT(19)= INOM_OPT(18)+ NGJOINT
2002 INOM_OPT(20)= INOM_OPT(19)+ NUNIT0
2003 INOM_OPT(21)= INOM_OPT(20)+ NFUNCT
2004 INOM_OPT(22)= INOM_OPT(21)+ NADMESH
2005 INOM_OPT(23)= INOM_OPT(22)+ NSPHIO
2006 INOM_OPT(24)= INOM_OPT(23)+ NSPCOND
2007 INOM_OPT(25)= INOM_OPT(24)+ NEBCS
2008 INOM_OPT(26)= INOM_OPT(25)+ NINICRACK
2009 INOM_OPT(27)= INOM_OPT(26)+ NODMAS
2010 INOM_OPT(28)= INOM_OPT(27)+ NBGAUGE
2011 INOM_OPT(29)= INOM_OPT(28)+ NCLUSTER
2012 INOM_OPT(30)= INOM_OPT(29)+ NINTERFRIC
2013 INOM_OPT(31)= INOM_OPT(30)+ NRBMERGE
2014 INOM_OPT(32)= INOM_OPT(31)+ NSLIPRING
2015 INOM_OPT(33)= INOM_OPT(32)+ NRETRACTOR
2017 IF(FLAG_GOTO==1) GOTO 211
2019 CALL ANODIN( NUMNOD)
2021 CALL APARTIN(NPART+1)
2029 ERR_CATEGORY='functions & tables
'
2030 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2032 PYTHON%nb_functs = 0
2033.OR.
IF(NFUNCT > 0 NTABLE > 0) THEN
2036 WRITE(ISTDO,'(a)
')' .. functions & tables
'
2037 ALLOCATE(TABLE(NTABLE) ,STAT=stat)
2038 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2041 CALL TABLE_ZERO(TABLE)
2044 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2045 ALLOCATE(TF(NPTS) ,STAT=stat)
2046 ALLOCATE(FUNCRYPT(NFUNCT) ,STAT=stat)
2048 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2052 CALL HM_READ_FUNCT(NPC ,TF ,NFUNCT ,TABLE, NPTS,
2053 . NOM_OPT(LNOPT1*INOM_OPT(20)+1) ,FUNCRYPT, UNITAB, LSUBMODEL)
2058 CALL trace_in1(err_msg,len_trim(err_msg))
2062 CALL hm_read_funct_python(python,
npc,snpc,nfunct,lsubmodel,nsubmod,tf,npts,
table, ntable)
2066 DEALLOCATE(funcrypt)
2073 CALL trace_in1(err_msg,len_trim(err_msg))
2075 ALLOCATE(tf(npts) ,stat=stat)
2076 ALLOCATE(
table(0) ,stat=stat)
2087 ALLOCATE(func2d(nfunc2d))
2088 IF(nfunc2d > 0)
THEN
2094 err_msg='dynamic storage
'
2096 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2098 SSKEW = LSKEW*(NUMSKW+1)
2099 IF(NSPCOND > 0) SSKEW = SSKEW + LSKEW*NUMSPH
2100 IF(NSUBMOD > 0) SSKEW = SSKEW + LSKEW*NSUBMOD
2101 SXFRAME = NXFRAME*(NUMFRAM+1)
2102 SSKEW = SSKEW + SXFRAME
2103 SGEO = NUMGEO*NPROPG
2104 SEANI = NUMELS+NUMELQ+NUMELC+NUMELTG
2105 ISHIF = NUMELS+NUMELQ+NUMELC
2107 ALLOCATE(PM(SPM) ,STAT=stat)
2108 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='pm
')
2109 ALLOCATE(GEO(SGEO),STAT=stat)
2110 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='geo
')
2112 ALLOCATE(SKEW(SSKEW) ,STAT=stat)
2113 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='skew
')
2114 IF(SSKEW-SXFRAME<SSKEW) THEN
2115 XFRAME => SKEW(SSKEW-SXFRAME+1:SSKEW)
2120 ALLOCATE(EANI(SEANI) ,STAT=stat)
2121 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='eani
')
2122 IF(SEANI > 0) EANI = 0
2123 IF(NUMELTG > 0) THEN
2124 EANIT => EANI(ISHIF+1:SEANI)
2131 ISHIF =NUMELS+NUMELQ+NUMELC
2134 ERR_MSG='kinematic initialization
'
2135 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2142 ERR_CATEGORY='materials
'
2143 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2144 CALL SAV_BUF_POINT(NPC,5)
2145 CALL SAV_BUF_POINT(TF,6)
2146 WRITE(ISTDO,'(a)
')TITRE(11)
2147 SRWORK = MAX(NUMMAT*10000,1000000)
2149 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
2150 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='rwork
')
2151 IF(SRWORK > 0) RWORK = ZERO
2153 ALLOCATE(MTAG_INI (NUMMAT))
2154 ALLOCATE(MPARAM_INI (NUMMAT))
2155 CALL INIT_MLAW_TAG(MTAG_INI,NUMMAT)
2156 MAT_ELEM%MAT_PARAM(1:NUMMAT) => MPARAM_INI(1:NUMMAT)
2157 MLAW_TAG(1:NUMMAT) => MTAG_INI(1:NUMMAT)
2160 CALL READ_MATERIAL_MODELS(
2161 . MAT_ELEM ,MLAW_TAG ,FAIL_TAG ,EOS_TAG ,
2162 . RWORK ,SRWORK ,IPM ,PM ,UNITAB ,
2163 . MULTI_FVM ,FAILWAVE ,NLOC_DMG ,LSUBMODEL ,TABLE ,
2164 . LTITR ,USERL_AVAIL,MAT_NUMBER,
2165 . NPC ,TF ,SNPC ,NPTS ,SBUFMAT )
2167 ALLOCATE(BUFMAT(SBUFMAT) ,STAT=stat)
2168 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2171 BUFMAT = RWORK(1:SBUFMAT)
2172 IF(ALLOCATED(RWORK)) DEALLOCATE(RWORK)
2177 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2183 CALL SAV_BUF_POINT(PM ,1)
2184 CALL SAV_BUF_POINT(BUFMAT ,2)
2185 CALL SAV_BUF_POINT(GEO ,3)
2188 CALL SAV_BUF_POINT(ISKWN ,7)
2189 CALL SAV_BUF_POINT(SKEW ,8)
2190 CALL SAV_BUF_POINT(IPM ,11)
2191 CALL SAV_BUF_POINT(IGEO,12)
2198 ERR_CATEGORY='nodes
'
2199 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2200 ALLOCATE(CMERGE(NUMCNOD),STAT=stat)
2202 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
2207 WRITE(ISTDO,'(a)
')TITRE(12)
2208 CALL HM_READ_NODE(X ,ITAB ,ITABM1 ,CMERGE ,UNITAB ,
2209 . WIGE ,LSUBMODEL,IS_DYNA)
2216 ALLOCATE(ISKEW_TMP(SISKWN) ,STAT=stat)
2217 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2220 ALLOCATE(SKEW_TMP(SSKEW) ,STAT=stat)
2221 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2225 CALL HM_PREREAD_SKW(SKEW_TMP ,ISKEW_TMP ,X ,ITAB ,ITABM1 ,
2226 . LSUBMODEL ,UNITAB ,NUMNOD ,NUMSKW ,CHECK_USED,
2227 . LISKN ,LSKEW ,N2D ,SISKWN ,SSKEW )
2229 ALLOCATE(ISKEW_TMP(0))
2230 ALLOCATE(SKEW_TMP(0))
2236 ERR_CATEGORY='submodels
'
2237 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2239 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2240 SRTRANS = NRTRANS * NTRANSF
2241 ALLOCATE(RTRANS(SRTRANS) ,STAT=stat)
2242 IF(SRTRANS > 0) RTRANS = ZERO
2245 WRITE(ISTDO,'(a)
')' .. submodels
'
2246 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2249 CALL LECTRANSSUB(X ,IGRNOD ,ITAB ,ITABM1 ,UNITAB,
2250 . RTRANS ,LSUBMODEL,IS_DYNA,ISKEW_TMP,LISKN ,
2251 . NSPCOND ,NUMSPH ,SISKWN )
2252 CALL LECSUBMOD(ISUBMOD ,X ,UNITAB ,ITABM1 ,RTRANS,
2253 . ITAB ,LSUBMODEL ,IS_DYNA ,ISKEW_TMP ,LISKN ,
2254 . SKEW_TMP ,LSKEW ,SISKWN ,SSKEW )
2263 IF(ALLOCATED(ISKEW_TMP)) DEALLOCATE(ISKEW_TMP)
2264 IF(ALLOCATED(SKEW_TMP)) DEALLOCATE(SKEW_TMP)
2266 ERR_CATEGORY='skews
'
2267 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2268 IF(NUMSKW/=0)WRITE(ISTDO,'(a)
')TITRE(14)
2269 CALL HM_READ_SKW(SKEW ,ISKWN ,X ,
2270 . ITAB ,ITABM1 ,BID13 ,
2272 . NOM_OPT(LNOPT1*INOM_OPT(10)+1),UNITAB)
2274 CALL HM_READ_FRM(ISKWN ,X ,ITAB ,ITABM1 ,XFRAME ,
2276 . NOM_OPT(LNOPT1*INOM_OPT(10)+1),UNITAB)
2282 ALLOCATE(IDRAPEID(NDRAPE) ,STAT=stat)
2283 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2287 CALL HM_READ_PRELECDRAPE(IDRAPEID,LSUBMODEL)
2289 ALLOCATE(IDRAPEID(0))
2295 CALL HM_PREREAD_PART(IPART,IGEO,LSUBMODEL)
2301 ERR_MSG='properties
'
2302 ERR_CATEGORY='properties
'
2303 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2306 WRITE(ISTDO,'(a)
')TITRE(31)
2307 SRWORK = NUMGEO*(BGEOSIZE+MAXFUNC+MAXMAT+MAXPID+MAXTAB)
2309 ALLOCATE(DBRWORK(SRWORK) ,STAT=stat)
2310 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2314 ALLOCATE(KNOT(SKNOT) ,STAT=stat)
2315 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2318 CALL SAV_BUF_POINT(DBRWORK,4)
2321 CALL HM_READ_PROPERTIES(GEO , X , IXC , PM ,ITABM1 ,
2322 . DBRWORK , SBUFGEO , ISKWN , IGEO ,IPM ,
2323 . NPC , TF , UNITAB , RTRANS ,LSUBMODEL ,
2324 . PROP_TAG , IPART , KNOT , IDRAPEID ,STACK_INFO,
2325 . NUMGEOSTACK, NPROP_STACK , MULTI_FVM, IADGEO ,DEFAULTS ,
2326 . MAT_ELEM%MAT_PARAM)
2328 ALLOCATE(BUFGEO(SBUFGEO) ,STAT=stat)
2329 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2332 BUFGEO(1:SBUFGEO) = DBRWORK(1:SBUFGEO)
2334 CALL SAV_BUF_POINT(BUFGEO,4)
2336 ALLOCATE(BUFGEO(SBUFGEO) ,STAT=stat)
2339 IF(NUMPLY /= 0) THEN
2340 ALLOCATE(PLY_INFO(3,NUMPLY),STAT=stat)
2341 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2346 ALLOCATE(PLY_INFO(0,0))
2349 IF(NUMSTACK > 0) THEN
2351 LEN_G = NPROPGI*(NUMSTACK + NUMPLY)
2352 ALLOCATE(IGEO_STACK(LEN_G),STAT=stat)
2354 LEN_G = NPROPG*(NUMSTACK + NUMPLY )
2355 ALLOCATE(GEO_STACK(LEN_G),STAT=stat)
2357 CALL LECSTACK_PLY(GEO_STACK ,X ,IXC ,PM ,ITABM1 ,
2358 . ISKWN ,IGEO_STACK ,IPM ,NPC ,TF ,
2359 . UNITAB , RTRANS ,LSUBMODEL,IPART ,IDRAPEID,
2360 . PLY_INFO ,STACK_INFO,NUMGEOSTACK, NPROP_STACK ,
2363 ALLOCATE(IGEO_STACK(0),STAT=stat)
2364 ALLOCATE(GEO_STACK(0),STAT=stat)
2367.AND.
IF(SDR==0 IDROT == 1) THEN
2368 SDR = 3*NUMNOD*MAX(IRODDL,IRODDL0)
2369 IF(ALLOCATED(DR)) DEALLOCATE(DR)
2370 ALLOCATE(DR(SDR) ,STAT=stat)
2371 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2380 ALLOCATE(PINCH_DATA%XPINCH(3,SPINCH) ,STAT=stat)
2381 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2384 ALLOCATE(PINCH_DATA%DPINCH(3,SPINCH) ,STAT=stat)
2385 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2388 ALLOCATE(PINCH_DATA%VPINCH(3,SPINCH) ,STAT=stat)
2389 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2392 ALLOCATE(PINCH_DATA%MSPINCH(SPINCH) ,STAT=stat)
2393 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2398 PINCH_DATA%XPINCH(1:3,1:SPINCH) = ZERO
2399 PINCH_DATA%DPINCH(1:3,1:SPINCH) = ZERO
2400 PINCH_DATA%VPINCH(1:3,1:SPINCH) = ZERO
2401 PINCH_DATA%MSPINCH(1:SPINCH) = ZERO
2412 ERR_CATEGORY='parts
'
2413 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2414 SIWORK = MAX(2*NUMELS,2*NUMELQ,3*(NPART+NTHPART),3*NUMSKW,NUMELS,
2415 * NUMELC,NUMELTG,NUMMAT+NUMGEO,NUMELT+NUMELP+NUMELR+
2417 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
2418 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2422 ALLOCATE(THK_PART(NPART) ,STAT=stat)
2424 CALL HM_READ_PART(IPART ,PM ,GEO ,IPM ,IGEO ,IWORK ,THK_PART,
2425 . UNITAB,LSUBMODEL,MULTI_FVM ,MLAW_TAG,MAT_ELEM%MAT_PARAM,GLOB_THERM)
2432 ALE%GLOBAL%SNALE = MAX(IALE,IEULER,IALELAG)*NUMNOD
2433 ALE%GLOBAL%SIELVS = 6*NUMELS+MAX(IALE,GLOB_THERM%ITHERM,IEULER,IALELAG)* (4 * NUMELQ + 3 * NUMELTG)
2434 SIFILL = NMULT*NUMNOD
2437 ALLOCATE(IFILL(SIFILL),STAT=stat)
2438 IF(STAT /= 0) CALL ANCMSG(MSGID = 268,
2440 . MSGTYPE = MSGERROR,
2443 ALLOCATE(IMS(SIMS),STAT=stat)
2444 IF(STAT /= 0) CALL ANCMSG(MSGID = 268,
2446 . MSGTYPE = MSGERROR,
2450 IF(SIFILL > 0) IFILL = 0
2451 IF(SIMS > 0) IMS = 0
2453 ALLOCATE(DFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2454 ALLOCATE(VFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2455 ALLOCATE(WFLOW(3*NUMNOD*IALELAG) ,STAT=stat)
2457 IF(IALELAG > 0) THEN
2463 IF(ALEFVM_Param%IEnabled > 0)THEN
2464 ALLOCATE(ALEFVM_Buffer%FCELL(6,NUMELS) ,STAT=stat)
2465 ALEFVM_Buffer%FCELL(:,:) = ZERO
2472 ERR_MSG='multidomains
'
2473 ERR_CATEGORY='multidomains
'
2474 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2477 SIEXLNK = NR2R*NR2RLNK
2478 IF((NR2RLNK+NSUBDOM)>0) THEN
2479 ALLOCATE(IEXLNK(SIEXLNK) ,STAT=stat)
2480 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2484 WRITE(ISTDO,'(a)
') ' ..
EXTERNAL coupling
'
2485 CALL LECEXTLNK(IEXLNK,IPART,LSUBMODEL)
2490 IF(NSUBDOM > 0) THEN
2491 ALLOCATE(TAG_PART(NPART),IPART_R2R(4,NPART))
2493 CALL R2R_VOID(IPART)
2497 !Material Buffer copy for R2R (rad2rad) with R2R_MATPARAM_COPY
2498 IF(NUMMAT > NUMMAT0) THEN
2499 ALLOCATE(MTAG_R2R(NUMMAT))
2500 ALLOCATE(MPARAM_R2R(NUMMAT))
2501 CALL INIT_MLAW_TAG(MTAG_R2R ,NUMMAT)
2502 MTAG_R2R(1:NUMMAT0) = MTAG_INI(1:NUMMAT0)
2503 CALL R2R_MATPARAM_COPY(MPARAM_R2R, MPARAM_INI ,NUMMAT0 ,NUMMAT)
2504 MLAW_TAG(1:NUMMAT) => MTAG_R2R(1:NUMMAT)
2505 MAT_ELEM%MAT_PARAM(1:NUMMAT) => MPARAM_R2R(1:NUMMAT)
2506 MAT_ELEM%NUMMAT = NUMMAT
2507 DEALLOCATE(MTAG_INI)
2508 IF(ALLOCATED(MPARAM_INI))THEN
2509 DO I=1,NUMMAT0 ; CALL MPARAM_INI(I)%DESTRUCT() ; ENDDO
2510 DEALLOCATE(MPARAM_INI)
2514 ALLOCATE(TAG_PART(0),IPART_R2R(4,0))
2521! TABMP_L defined in tabsiz_c
2524 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2525 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2529 ALLOCATE( POIN_PART_SHELL(2,NPART) )
2530 ALLOCATE( POIN_PART_TRI(2,NPART) )
2531 ALLOCATE( POIN_PART_SOL(2,NPART,7) )
2532 ALLOCATE( MID_PID_SHELL(NUMMAT),MID_PID_TRI(NUMMAT) )
2533 ALLOCATE( MID_PID_SOL(NUMMAT,7) )
2534 POIN_PART_SHELL(1:2,1:NPART) = 0
2535 POIN_PART_TRI(1:2,1:NPART) = 0
2536 POIN_PART_SOL(1:2,1:NPART,1:7) = 0
2538 ALLOCATE(POIN_UMP(NUMMAT), STAT=stat)
2539 POIN_UMP(1:NUMMAT) = 0
2540 ALLOCATE(TAB_UMP_LOC(5,NPART), STAT=stat)
2541 TAB_UMP_LOC(1:5,1:NPART) = 0
2543 CALL SET_POIN_UMP(IPART,IPM,TAB_UMP_LOC,POIN_UMP,TAILLE2)
2549 ERR_CATEGORY='elements
'
2550 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2552 WRITE(ISTDO,'(a)
')TITRE(15)
2554 CALL HM_READ_SOLID(IXS ,PM ,ITAB ,ITABM1 ,
2555 . IPART ,IPARTS ,EANI ,IXS10 ,IXS20 ,IXS16 ,
2556 . IGEO ,LSUBMODEL,IS_DYNA,X )
2564 WRITE(ISTDO,'(a)
')TITRE(16)
2565 CALL HM_READ_QUAD(IXQ ,ITAB ,ITABM1 ,IPART ,IPARTQ ,
2566 . IPM ,IGEO ,UNITAB ,LSUBMODEL)
2571 ALLOCATE(ITAG(NUMNOD),STAT=stat)
2572 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2578 WRITE(ISTDO,'(a)
')TITRE(17)
2579 CALL HM_READ_SHELL(IXC ,ITAB ,ITABM1 ,IPART ,IPARTC ,
2580 . THKE ,IPM ,IGEO ,UNITAB ,ITAG ,SH4ANG, LSUBMODEL)
2591 WRITE(ISTDO,'(a)
')TITRE(18)
2592 CALL HM_READ_TRUSS(IXT ,ITAB ,ITABM1 ,IPART ,IPARTT ,
2593 . IPM ,IGEO ,LSUBMODEL)
2599 WRITE(ISTDO,'(a)
')TITRE(19)
2600 CALL HM_READ_BEAM(IXP ,ITAB ,ITABM1 ,IPART ,IPARTP ,
2601 . IPM ,IGEO ,LSUBMODEL,IBEAM_VECTOR,RBEAM_VECTOR)
2608 WRITE(ISTDO,'(a)
')TITRE(20)
2609 CALL HM_READ_SPRING(IXR ,ITAB ,ITABM1 ,IPART ,IPARTR ,
2610 . IGEO ,IXR_KJ ,LSUBMODEL,ISKWN,R_SKEW,IPM)
2616.AND.
IF(N2D==0 NUMELTRIA==0)THEN
2617 WRITE(ISTDO,'(a)
')TITRE(21)
2618 CALL HM_READ_SH3N( IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2619 . THKEC ,PM ,GEO ,EANIT ,IGEO ,
2620 . IPM ,UNITAB ,SH3ANG , LSUBMODEL)
2621 ELSEIF(NUMELTRIA==NUMELTG)THEN
2622 WRITE(ISTDO,'(a)
')TITRE(23)
2623 CALL HM_READ_TRIA(IXTG ,ITAB ,ITABM1 ,IPART ,IPARTG ,
2624 . PM ,GEO ,EANIT ,IGEO ,IPM ,
2625 . UNITAB , LSUBMODEL)
2627 !check is IXTG array is used with proper modeling : 2D-TRIA or 3D-SH3N
2628.AND..AND.
IF(NUMELTG>0 N2D>0 NUMELTRIA==0)THEN
2629 CALL ANCMSG(MSGID=66,
2635.AND..AND.
ELSEIF(NUMELTG>0 N2D==0 NUMELTRIA==NUMELTG)THEN
2636 CALL ANCMSG(MSGID=66,
2648 IF(NUMELTG + NUMELC == 0) ICRACK3D = 0
2653 IF(NUMELIG3D/=0)THEN
2655 SKXIG3D = NIXIG3D*NUMELIG3D
2656 WRITE(ISTDO,'(a)
')TITRE(22)
2658 CALL PRELECIG3D(SIXIG3D)
2660 ALLOCATE(KXIG3D(SKXIG3D) ,STAT=stat)
2661 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2664 ALLOCATE(IXIG3D(SIXIG3D+ADDSIXIG3D) ,STAT=stat)
2665 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2668 ALLOCATE(TABCONPATCH(NBPART_IG3D),STAT=stat)
2669 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2671 . C1='tabcon_patch_ig3d
')
2675 . ITAB ,IPART ,IPARTIG3D ,IPM ,IGEO ,
2676 . KXIG3D ,IXIG3D ,ITABM1 ,NCTRLMAX,TABCONPATCH)
2678 SKNOTLOCPC = DEG_MAX*3*(NUMNOD+L_TAB_NEWFCT)*NUMGEO ! THERE SHOULD BE A NUMBER OF IGE POINTS AND INDICES
2680.OR.
IF(SKNOTLOCPC > INTMAX SKNOTLOCPC < ZERO) THEN ! L_TAB_NEWFCT to allow for workspace size
2683 SKNOTLOCPC = INT(SKNOTLOCPC)
2685 ALLOCATE(KNOTLOCPC(SKNOTLOCPC) ,STAT=stat)
2686 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2691 SKNOTLOCEL = 2*3*NUMELIG3D
2692.OR.
IF(SKNOTLOCEL > INTMAX SKNOTLOCEL < ZERO) THEN
2695 SKNOTLOCEL = INT(SKNOTLOCEL)
2697 ALLOCATE(KNOTLOCEL(SKNOTLOCEL) ,STAT=stat)
2698 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2703 CALL PRERAFIG3D(KNOT,KNOTLOCPC,KNOTLOCEL,
2704 . KXIG3D,IXIG3D,IGEO,
2706 . X,V,D,MS,WIGE,TABCONPATCH,1)
2708 SIXIG3D=SIXIG3D+ADDSIXIG3D
2709 ALLOCATE(MSIG3D(NUMELIG3D*NCTRLMAX) ,STAT=stat)
2710 MSIG3D(1:NUMELIG3D*NCTRLMAX) = ZERO
2712 ALLOCATE(KXIG3D(0) ,STAT=stat)
2713 ALLOCATE(MSIG3D(0) ,STAT=stat)
2714 ALLOCATE(IXIG3D(0) ,STAT=stat)
2715 ALLOCATE(KNOTLOCEL(0) ,STAT=stat)
2716 ALLOCATE(KNOTLOCPC(0) ,STAT=stat)
2721.AND.
IF(NUMELX > 0 NGRNOD > 0 )THEN
2722 WRITE(ISTDO,'(a)
')' .. nodens group
'
2723 CALL HM_PRELECGRNS(ITABM1 ,IGRNOD, LSUBMODEL)
2728 ERR_MSG='multi-purpose elements
'
2729 ERR_CATEGORY='multi-purpose elements
'
2730 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2733 CALL HM_PREREAD_XELEM(SIXX, IGRNOD,LSUBMODEL)
2734 ALLOCATE(KXX(SKXX) ,STAT=stat)
2735 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2738 ALLOCATE(IXX(SIXX+150) ,STAT=stat)
2739 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2744 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2745 LELX(1:NUMELX) = ZERO
2746 CALL HM_READ_XELEM(IGRNOD ,ITAB ,ITABM1 ,IPART ,IPARTX,
2747 . IPM ,IGEO ,KXX ,IXX ,LSUBMODEL)
2751 ALLOCATE(KXX(SKXX) ,STAT=stat)
2752 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2755 ALLOCATE(IXX(SIXX) ,STAT=stat)
2756 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2759 ALLOCATE(LELX(NUMELX) ,STAT=stat)
2765 ERR_MSG='adaptive meshing
'
2766 ERR_CATEGORY='adaptive meshing
'
2767 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2773 ALLOCATE(SH4TREE(KSH4TREE,NUMELC),STAT=stat)
2774 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2778 ALLOCATE(SH3TREE(KSH3TREE,NUMELTG),STAT=stat)
2779 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2783 ALLOCATE(IPADMESH(KIPADMESH,NPART),STAT=stat)
2784 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2789 ALLOCATE(PADMESH(KPADMESH,NPART),STAT=stat)
2790 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2795 CALL SET_ADMESH(IPART ,IPADMESH,PADMESH,UNITAB,LSUBMODEL )
2799 ALLOCATE(SH4TRIM(LSH4TRIM),STAT=stat)
2800 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2805 ALLOCATE(SH3TRIM(LSH3TRIM),STAT=stat)
2806 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2811 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2812 . SH4TREE, SH3TREE, SH4TRIM, SH3TRIM,
2816 . IPART ,IPARTC ,IPARTG ,IXC ,IXTG ,
2817 . X ,ITAB ,ITABM1 ,SH4TREE, SH3TREE,
2820 ALLOCATE(SH4TREE(0,0))
2821 ALLOCATE(SH3TREE(0,0))
2822 ALLOCATE(IPADMESH(0,0))
2823 ALLOCATE(PADMESH(0,0))
2824 ALLOCATE(SH4TRIM(0))
2825 ALLOCATE(SH3TRIM(0))
2829 ALLOCATE(MSCND(NUMNOD),INCND(NUMNOD),STAT=stat)
2830 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2836 ALLOCATE(MSCND(0),INCND(0))
2845 ALLOCATE(TAB_UMP_LOC2(7+6,TAILLE2,2),STAT=stat)
2847 CALL REINI_MATPROP(TAILLE,TAILLE2,TAB_UMP_LOC,TAB_UMP_LOC2,
2848 . IXS,IXQ,IXC,IXT,IXP,IXR,
2849 . IXTG,EANI,POIN_UMP)
2851 ALLOCATE( TAB_UMP(7,TAILLE), STAT=stat)
2854 CALL REINI_MATPROP2(TAILLE,TAILLE2,
2855 . TAB_UMP_LOC,TAB_UMP_LOC2,TAB_UMP,TAB_SOL,
2858 DEALLOCATE(TAB_UMP_LOC2)
2860 DEALLOCATE(TAB_UMP_LOC)
2865 IF(ICRACK3D > 0) THEN
2866 NXEL = 3 ! nb of phantom elements within one layer (change to NXEL=3)
2868 IF(IPARI0 /= 1) IPARI0=1 ! force flag parith/on pour XFEM (pareil engine)
2874 ERR_MSG='xfem
for shells - allocations
'
2875 ERR_CATEGORY='internal
'
2876 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2879 ALLOCATE(ADDCNE_CRKXFEM(0:LEN+1),STAT=stat)
2880 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2881 . MSGTYPE=MSGERROR,C1='addcne_crkxfem
')
2882 ADDCNE_CRKXFEM(0:LEN+1) = 0
2884 ALLOCATE(ITAGN(LEN),STAT=stat)
2885 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2886 . MSGTYPE=MSGERROR,C1='itagn
')
2887 ALLOCATE(INOD_CRKXFEM(LEN),STAT=stat)
2888 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2890 ALLOCATE(IBORDNODE(LEN),STAT=stat)
2891 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
2893 LEN = XFEMON*(NUMELC+NUMELTG)
2895 ALLOCATE(ITAGE(LEN),STAT=stat)
2896 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2897 . MSGTYPE=MSGERROR,C1='itage
')
2898 ALLOCATE(IEL_CRKXFEM(LEN),STAT=stat)
2899 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2914 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
2916 ALLOCATE(SPH2SOL(NUMSPH) ,STAT=stat)
2917 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2921 ALLOCATE(SOL2SPH(2*NUMELS8) ,STAT=stat)
2922 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2926 ALLOCATE(IRST(3*NSPHSOL) ,STAT=stat)
2927 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2931 ALLOCATE(SOL2SPH_TYP(NUMELS8) ,STAT=stat)
2932 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2937 ALLOCATE(SPH2SOL(0) ,STAT=stat)
2938 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2941 ALLOCATE(SOL2SPH(0) ,STAT=stat)
2942 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2945 ALLOCATE(IRST(0) ,STAT=stat)
2946 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2949 ALLOCATE(SOL2SPH_TYP(0) ,STAT=stat)
2950 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2955 SSPBUF = NSPBUF*NUMSPH
2957 SIXSP = KVOISPH*NUMSPH
2963 SIXSP8 = (NUMSPH8/(NSPMD))*KVOISPH8
2964 LIMIT8 = (HUGE(INTEGER_LIMIT32)-1)*0.95!((2**31)-1)*0.95
2965 IF(SIXSP8>LIMIT8)THEN
2966 CALL ANCMSG(MSGID=981,
2972 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
2973 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2976 ALLOCATE(IXSP(KVOISPH,NUMSPH) ,STAT=stat)
2977 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2980 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
2981 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2984 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
2985 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
2989.AND.
IF(NSPHIO>0NBPARTINLET>0)THEN
2990 ALLOCATE(RESERVEP(NBPARTINLET) ,STAT=stat)
2991 IF(STAT /= 0) CALL ANCMSG(MSGID=268,
2995 RESERVEP(1:NBPARTINLET) = 0
2997 ALLOCATE(RESERVEP(1))
3004 WRITE(ISTDO,'(a)
')' .. sph particles definition
'
3005 CALL HM_READ_SPHCEL(ITAB ,ITABM1 ,IPART ,
3006 2 IPARTSP ,IPM ,IGEO ,KXSP ,IXSP ,
3007 3 NOD2SP, RESERVEP,IXS ,IPARTS ,EANI ,
3008 4 SPH2SOL,SOL2SPH ,IRST ,X ,SOL2SPH_TYP,
3009 5 LSUBMODEL,SPBUF ,UNITAB ,IPRI )
3016 ALLOCATE(KXSP(SKXSP) ,STAT=stat)
3017 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3020 ALLOCATE(IXSP(0,0) ,STAT=stat)
3021 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3024 ALLOCATE(NOD2SP(SNOD2SP) ,STAT=stat)
3025 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3028 ALLOCATE(SPBUF(SSPBUF) ,STAT=stat)
3029 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3038 ERR_MSG='connectivity
'
3039 ERR_CATEGORY='connectivity
'
3040 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3041 ! -------------------
3042 ! initialisation of invert_group structure, used in
3043 ! HM_READ_SET and in HM_READ_SENSORS for user sensor
3044 CALL INVERTED_GROUP_INIT(0,INV_GROUP,NUMSPH)
3046 CALL COMPUTE_CONNECT_PARTELM(IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP,
3047 . IPARTG ,IPARTR ,IPARTSP ,INV_GROUP,NUMSPH,
3049 ! -------------------
3050 IF(NUMELTG6 ==0 )THEN
3055 ALLOCATE(IXTG1(SIXTG1), STAT=stat)
3056 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3061214 ALLOCATE(KNOD2ELS(NUMNOD+1),STAT=stat)
3062 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3066 ALLOCATE(KNOD2ELC(NUMNOD+1),STAT=stat)
3067 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3070 ALLOCATE(KNOD2ELTG(NUMNOD+1),STAT=stat)
3071 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3075 ALLOCATE(KNOD2EL1D(NUMNOD+1),STAT=stat)
3076 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3081 ALLOCATE(KNOD2ELQ(NUMNOD+1),STAT=stat)
3082 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3087 S_NOD2ELS = 8*NUMELS+6*NUMELS10+12*NUMELS20+8*NUMELS16
3088 ALLOCATE(NOD2ELS(S_NOD2ELS),STAT=stat)
3089 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3093 ALLOCATE(NOD2ELC(4*NUMELC),STAT=stat)
3094 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3098 S_NOD2ELTG = 3*NUMELTG+3*NUMELTG6
3099 ALLOCATE(NOD2ELTG(S_NOD2ELTG),STAT=stat)
3100 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3104 S_NOD2EL1D=2*NUMELT+2*NUMELP+3*NUMELR+2*SIXX
3105 ALLOCATE(NOD2EL1D(S_NOD2EL1D),STAT=stat)
3106 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3110 ALLOCATE(KNOD2ELIG3D(NUMNOD+1),STAT=stat)
3111 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3115 ALLOCATE(NOD2ELIG3D(NCTRLMAX*NUMELIG3D),
3117 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3121 ALLOCATE(NOD2ELQ(4*NUMELQ),STAT=stat)
3122 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3127 IF(FLAG_GOTO==1) GOTO 215
3131 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
3132 3 IXR ,IXTG ,IXS10 ,IXS20 ,
3133 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
3134 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
3135 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
3136 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
3138 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
3144 SIBUFSSG = 0 ! to be removed
3148 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3150 WRITE(ISTDO,'(a)
')' ..
subsets'
3152 CALL HM_READ_SUBSET(SUBSETS,IPART,NSUBS,NPART,LSUBMODEL)
3153 CALL SUBSET_INI(SUBSETS)
3163 ERR_CATEGORY='boxes
'
3164 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3166 ALLOCATE(IBOX (NBBOX))
3168 WRITE(ISTDO,'(a)
')' .. box
'
3170 CALL HM_READ_BOX(IBOX ,UNITAB ,ITABM1 ,ISKWN ,SKEW ,
3171 . X ,RTRANS ,LSUBMODEL)
3180 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3184 WRITE(ISTDO,'(a)
')' .. element groups
'
3185 ERR_CATEGORY='element groups
'
3189 ALLOCATE(IXS_S(NUMELS),IXS_S_IND(NUMELS),IXQ_S(NUMELQ),
3190 2 IXQ_S_IND(NUMELQ),IXC_S(NUMELC),IXC_S_IND(NUMELC),
3191 3 IXT_S(NUMELT),IXT_S_IND(NUMELT),IXP_S(NUMELP),
3192 4 IXP_S_IND(NUMELP),IXR_S(NUMELR),IXR_S_IND(NUMELR),
3193 5 IXTG_S(NUMELTG),IXTG_S_IND(NUMELTG))
3196 1 ITAB ,ITABM1 ,ISUBMOD ,
3197 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3198 3 IXR ,IXTG , IPART ,
3199 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3200 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3201 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3202 7 IXS10 ,IXS16 ,IXS20 ,RTRANS,LSUBMODEL,
3203 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3204 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3205 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3206 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3208 LENI=MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,NUMELTG)
3211 1 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3212 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3213 3 IXTG_S,IXTG_S_IND,IXS,IXQ,IXC,IXT,IXP,IXR,IXTG,LENI)
3217 1 ITAB ,ITABM1 ,ISUBMOD ,
3218 2 X ,IXS ,IXQ ,IXC ,IXT ,IXP ,
3219 3 IXR ,IXTG , IPART ,
3220 4 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
3221 5 IPARTG ,FLAGG ,SH4TREE ,SH3TREE ,
3222 6 SKEW ,ISKWN ,UNITAB ,IBOX ,
3223 7 IXS10 ,IXS16,IXS20,RTRANS,LSUBMODEL,
3224 8 IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3225 9 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3226 A IXTG_S,IXTG_S_IND,IADBOXMAX,SUBSETS,IGRBRIC,IGRQUAD,
3227 B IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING)
3229 DEALLOCATE(IXS_S ,IXS_S_IND,IXQ_S,IXQ_S_IND,IXC_S,IXC_S_IND,
3230 2 IXT_S ,IXT_S_IND,IXP_S,IXP_S_IND,IXR_S,IXR_S_IND,
3231 3 IXTG_S,IXTG_S_IND)
3235 WRITE(ISTDO,'(a)
')' .. part groups
'
3236 ERR_CATEGORY='part groups
'
3238 FLAGG = 0 !TAG ENTITY & ALLOCATE
3239 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3241 FLAGG = 1 !BUILD GROUPS
3242 CALL HM_READ_GRPART(IGRPART , IPART, ISUBMOD, FLAGG ,NGRPART,LSUBMODEL, SUBSETS )
3246 ERR_CATEGORY='group of groups
'
3249 DO WHILE (ICOUNT > 0)
3255 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3256 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3263 . ICOUNT ,ITER ,IGRBRIC,IGRQUAD ,IGRSH4N,
3264 . IGRSH3N ,IGRTRUSS,IGRBEAM,IGRSPRING,IGRPART,
3271 ! allocation for pre-read of Rbody needed for /SET
3273 ALLOCATE(RBY_MSN(2,NRBODY))
3274 CALL PREREAD_RBODY_SET(LSUBMODEL,ITABM1,RBY_MSN)
3276 ALLOCATE(RBY_MSN(0,0))
3279 ! PART UID to Internal ID conversion
3281 CALL CREATE_MAP_TABLES ( MAP_TABLES ,1 ,
3282 * LSUBMODEL ,SUBSETS,
3284 * IXS ,IXQ ,IXC ,IXTG ,
3285 * IXT ,IXP ,IXR ,KXSP,IBID,
3290 IF(NSURF+NSETS > 0)THEN
3291 ALLOCATE(RWORK(LISURF1*(NSURF+NSETS)) ,STAT=stat)
3293 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3299 WRITE(ISTDO,'(a)
')' .. surfaces
'
3300 ERR_CATEGORY='surfaces definition
'
3307 RNIGE=(1+NSURF*NUMELIG3D*16*6)
3308.OR.
IF(RNIGE > INTMAX RNIGE < ZERO) THEN
3313 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3315 CALL ANCMSG(MSGID=727,
3320 RRIGE=(1+NSURF*NUMELIG3D*3*16*6)
3321.OR.
IF(RRIGE > INTMAX RRIGE < ZERO) THEN
3326 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3328 CALL ANCMSG(MSGID=727,
3333 RXIGE=(1+NSURF*NUMELIG3D*3*16*6)
3334.OR.
IF(RXIGE > INTMAX RXIGE < ZERO) THEN
3339 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3341 CALL ANCMSG(MSGID=727,
3346 RVIGE=(1+NSURF*NUMELIG3D*3*16*6)
3347.OR.
IF(RVIGE > INTMAX RVIGE < ZERO) THEN
3352 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3354 CALL ANCMSG(MSGID=727,
3364 IDXIGECNT = IDXIGECNT + 1
3365 IDXIGE1 = MOD(IDXIGECNT,2)
3366 IDXIGE2 = MOD(IDXIGECNT+1,2)
3374 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3376 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3377 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3378 6 SBUFSF ,ISKWN ,SKEW ,
3379 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3380 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3381 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3382 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG,
3383 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3384 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3385 D V ,NIGE_TMP(IDXIGE1)%ptr,
3386 E RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3387 F VIGE_TMP(IDXIGE1)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3388 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3389 F KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3392 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE+NUMFAKENODIGEO) ,STAT=stat)
3394 CALL ANCMSG(MSGID=727,
3399 SNIGE = SNIGE + NUMFAKENODIGEO
3400 DEALLOCATE(NIGE_TMP(IDXIGE1)%ptr)
3402 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3404 CALL ANCMSG(MSGID=727,
3409 SRIGE = SRIGE + 3*NUMFAKENODIGEO
3410 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2)
3412 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3414 CALL ANCMSG(MSGID=727,
3419 SXIGE = SXIGE + 3*NUMFAKENODIGEO
3420 DEALLOCATE(XIGE_TMP(IDXIGE1)%ptr2)
3422 ALLOCATE(VIGE_TMP(IDXIGE2)%ptr2(SVIGE+3*NUMFAKENODIGEO) ,STAT=stat)
3424 CALL ANCMSG(MSGID=727,
3429 SVIGE = SVIGE + 3*NUMFAKENODIGEO
3430 DEALLOCATE(VIGE_TMP(IDXIGE1)%ptr2)
3437 2 IGRSURF ,IXS ,IXQ ,IXC ,IXT ,
3439 4 ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3440 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,X ,
3441 6 SBUFSF ,ISKWN ,SKEW ,
3442 7 RWORK ,KNOD2ELS ,NOD2ELS ,SH4TREE ,SH3TREE ,
3443 8 ISUBMOD ,FLAGG ,UNITAB ,IBOX ,
3444 9 IXS10 ,IXS16 ,IXS20 ,RTRANS,
3445 A LSUBMODEL ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG ,
3446 B KXIG3D ,IXIG3D ,IPARTIG3D ,
3447 C KNOT ,IGEO ,WIGE ,KNOD2ELIG3D,NOD2ELIG3D,
3448 D V ,NIGE_TMP(IDXIGE2)%ptr,
3449 E RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,
3450 F VIGE_TMP(IDXIGE2)%ptr2,IADTABIGE,DECALIGEO,IADBOXMAX,KNOD2ELQ,
3451 G NOD2ELQ ,SUBSETS ,IGRBRIC ,IGRSH4N ,IGRSH3N ,
3452 H KNOTLOCPC ,KNOTLOCEL ,NSETS ,MAP_TABLES)
3455 IF(NUMFAKENODIGEO>0) THEN
3456 ALLOCATE(PERMIGE(NUMFAKENODIGEO) ,STAT=stat)
3459 CALL PRESEARCHIGEO3D(IGRSURF,XIGE_TMP(IDXIGE2)%ptr2,PERMIGE)
3462 ALLOCATE(NIGE_TMP(IDXIGE1)%ptr(SNIGE) ,STAT=stat)
3464 CALL ANCMSG(MSGID=727,
3470 ALLOCATE(RIGE_TMP(IDXIGE1)%ptr2(SRIGE) ,STAT=stat)
3472 CALL ANCMSG(MSGID=727,
3478 ALLOCATE(XIGE_TMP(IDXIGE1)%ptr2(SXIGE) ,STAT=stat)
3480 CALL ANCMSG(MSGID=727,
3486 ALLOCATE(VIGE_TMP(IDXIGE1)%ptr2(SVIGE) ,STAT=stat)
3488 CALL ANCMSG(MSGID=727,
3501 CALL SEARCHIGEO3D(IGRSURF ,IADTABIGE ,PERMIGE ,
3502 . NIGE_TMP(IDXIGE2)%ptr ,NIGE_TMP(IDXIGE1)%ptr,
3503 . RIGE_TMP(IDXIGE2)%ptr2 ,RIGE_TMP(IDXIGE1)%ptr2,
3504 . XIGE_TMP(IDXIGE2)%ptr2 ,XIGE_TMP(IDXIGE1)%ptr2,
3505 . VIGE_TMP(IDXIGE2)%ptr2 ,VIGE_TMP(IDXIGE1)%ptr2,
3509 DEALLOCATE(RIGE_TMP(IDXIGE2)%ptr2,XIGE_TMP(IDXIGE2)%ptr2,VIGE_TMP(IDXIGE2)%ptr2)
3511 SNIGE = NUMFAKENODIGEO
3512 SRIGE = 3*NUMFAKENODIGEO
3513 SXIGE = 3*NUMFAKENODIGEO
3514 SVIGE = 3*NUMFAKENODIGEO
3521 ALLOCATE(NIGE_TMP(IDXIGE2)%ptr(SNIGE) ,STAT=stat)
3523 CALL ANCMSG(MSGID=727,
3529 NIGE_TMP(IDXIGE2)%ptr(I) = NIGE_TMP(IDXIGE1)%ptr(I)
3532 ALLOCATE(RIGE_TMP(IDXIGE2)%ptr2(SRIGE) ,STAT=stat)
3534 CALL ANCMSG(MSGID=727,
3540 RIGE_TMP(IDXIGE2)%ptr2(I) = RIGE_TMP(IDXIGE1)%ptr2(I)
3543 ALLOCATE(XIGE_TMP(IDXIGE2)%ptr2(SXIGE) ,STAT=stat)
3545 CALL ANCMSG(MSGID=727,
3551 XIGE_TMP(IDXIGE2)%ptr2(I) = XIGE_TMP(IDXIGE1)%ptr2(I)
3554 ALLOCATE(VIGE_TMP(1)%ptr2(SVIGE) ,STAT=stat)
3556 CALL ANCMSG(MSGID=727,
3562 VIGE_TMP(IDXIGE2)%ptr2(I) = VIGE_TMP(IDXIGE1)%ptr2(I)
3566 DEALLOCATE(RIGE_TMP(IDXIGE1)%ptr2,XIGE_TMP(IDXIGE1)%ptr2,
3567 . VIGE_TMP(IDXIGE1)%ptr2)
3577 DO WHILE (ICOUNT == 1)
3582 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3587 CALL HM_READ_SURFSURF(IGRSURF, INSEG, FLAGG, ICOUNT, ITER, NSETS, LSUBMODEL)
3596 NSEGS=NSEGS+IGRSURF(I)%NSEG
3599 NSEGSMAX= MAX(NSEGSMAX,IGRNOD(I)%NENTITY)
3602 NSEGSMAX= MAX(NSEGSMAX,IGRBRIC(I)%NENTITY)
3605 NSEGSMAX= MAX(NSEGSMAX,IGRQUAD(I)%NENTITY)
3608 NSEGSMAX= MAX(NSEGSMAX,IGRSH4N(I)%NENTITY)
3611 NSEGSMAX= MAX(NSEGSMAX,IGRSH3N(I)%NENTITY)
3614 NSEGSMAX= MAX(NSEGSMAX,IGRTRUSS(I)%NENTITY)
3617 NSEGSMAX= MAX(NSEGSMAX,IGRBEAM(I)%NENTITY)
3620 NSEGSMAX= MAX(NSEGSMAX,IGRSPRING(I)%NENTITY)
3623 NSEGSMAX= MAX(NSEGSMAX,IGRPART(I)%NENTITY)
3625 NSEGS=NSEGS+NSEGSMAX
3630 WRITE(ISTDO,'(a)
')' .. lines
'
3631 ERR_CATEGORY='lines
'
3637 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3638 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3639 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3640 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3641 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3642 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3643 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3644 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3650 2 ISUBMOD ,IGRSLIN ,IGRSURF ,X ,IXS ,
3651 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3652 4 IXTG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
3653 5 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
3654 6 NSEGS , FLAGG ,SKEW ,ISKWN ,
3655 7 UNITAB ,IBOX ,RTRANS ,LSUBMODEL,
3656 8 IPARTX ,KXX ,IXX ,IADBOXMAX,SUBSETS,
3657 9 IGRTRUSS,IGRBEAM,IGRSPRING,NSETS ,MAP_TABLES)
3663 DO WHILE (ICOUNT == 1)
3668 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3671 CALL HM_LINES_OF_LINES(IGRSLIN ,INSEG ,FLAGG ,ICOUNT ,ITER ,NSETS, LSUBMODEL)
3678 IF(NINICRACK > 0) THEN
3679 WRITE(ISTDO,'(a)
')' .. initial crack
'
3680 ERR_CATEGORY='initial cracks
'
3681 SILEVSET = NINICRACK
3682 ALLOCATE(INICRACK(SILEVSET) ,STAT=stat)
3683 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3686 ! Reading /INICRACK cards
3687 CALL HM_READ_INICRACK(ITABM1 ,INICRACK ,UNITAB ,LSUBMODEL)
3691 ALLOCATE(INICRACK(SILEVSET))
3698 WRITE(ISTDO,'(a)
')' .. node group
'
3699 ERR_CATEGORY='node groups
'
3704 FLAGG = 0 !TAGNODES & ALLOCATE
3706 1 ITAB ,ITABM1 ,IGRNOD ,
3707 2 ISUBMOD ,X ,GEO ,IXS ,
3708 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3710 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3711 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3712 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3713 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3714 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3715 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3716 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3717 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3719 FLAGG = 1 !BUILD GROUPS
3721 1 ITAB ,ITABM1 ,IGRNOD ,
3722 2 ISUBMOD ,X ,GEO ,IXS ,
3723 3 IXQ ,IXC ,IXT ,IXP ,IXR ,
3725 5 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
3726 6 IPARTR ,IPARTG ,IPARTSP ,KXSP ,
3727 7 FLAGG ,MAXNNOD ,SKEW ,ISKWN ,
3728 8 UNITAB ,IBOX ,IXS10 ,IXS20 ,
3729 9 IXS16 ,RTRANS ,LSUBMODEL,IXX,
3730 A KXX ,IPARTX ,IADBOXMAX,IGRSLIN,SUBSETS ,
3731 B IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
3732 C IGRBEAM ,IGRSPRING,IGRSURF,NSETS )
3738 DO WHILE (ICOUNT == 1)
3741 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node
',LSUBMODEL)
3744 CALL HM_GROGRONOD(IGRNOD ,ICOUNT ,FLAGG ,ITER,'node
',LSUBMODEL)
3756 ALLOCATE(SET (NSETS))
3758 WRITE(ISTDO,'(a)
')' ..
set'
3761 CALL HM_SET(SET ,LSUBMODEL ,INV_GROUP ,MAP_TABLES ,IPART ,
3762 * IGRSURF ,IGRNOD ,IGRSLIN ,IGRPART ,IGRBRIC ,
3763 * IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,IGRBEAM ,
3764 * IGRSPRING,IXS ,IXS10 ,IXC ,IXTG ,
3765 * KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,
3766 * NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,SH4TREE ,
3767 * SH3TREE ,IXQ ,KNOD2ELQ ,NOD2ELQ ,X ,
3768 * IXT ,IXP ,IXR ,IXX ,KXX ,
3769 * KXSP ,IXS20 ,IXS16 ,GEO ,ITABM1 ,
3770 * IBOX ,SKEW ,IPARTQ ,IPARTT ,IPARTP ,
3771 * IPARTR ,SUBSETS ,RBY_MSN ,ISKWN ,RTRANS ,
3772 * UNITAB ,RWORK ,SBUFSF ,SISKWN ,SSKEW ,
3773 * ROOTNAM ,ROOTLEN ,INFILE_NAME ,INFILE_NAME_LEN )
3779 IF (NSURF+NSETS > 0) THEN
3781 ALLOCATE(BUFSF(SBUFSF) ,STAT=stat)
3782 BUFSF = RWORK(1:SBUFSF)
3784 CALL ANCMSG(MSGID=727,
3793 IF(ALLOCATED(RWORK)) DEALLOCATE(RWORK)
3800 ERR_CATEGORY='drape
'
3801 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
3806 WRITE(ISTDO,'(a)
')' .. drape
'
3807 ALLOCATE(DRAPE_WRK(NUMELC + NUMELTG),DRAPEG%INDX(NUMELC + NUMELTG))
3809 ALLOCATE(INDXSH(NUMELC + NUMELTG))
3818.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3819 ALLOCATE(IWORK_T(NUMELC+NUMELTG))
3820 CALL PRE_STACKGROUP(
3821 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3822 . IGEO ,GEO ,IGEO_STACK ,IWORKSH ,
3826 CALL HM_READ_DRAPE(DRAPE_WRK ,IWORK_T ,IWORKSH ,IGRSH3N ,IGRSH4N ,
3827 . IXC ,IXTG ,IGEO ,IGEO_STACK,LSUBMODEL,
3829 IF( NUMELC_DRAPE > 0) SCDRAPE = NUMELC
3830 IF( NUMELTG_DRAPE > 0) STDRAPE = NUMELTG
3831 ALLOCATE(DRAPE(NUMELC_DRAPE +NUMELTG_DRAPE) )
3832 IF( (NUMELC_DRAPE + NUMELTG_DRAPE )> 0) THEN
3833 DRAPEG%NUMSH4 = NUMELC_DRAPE
3834 DRAPEG%NUMSH3 = NUMELTG_DRAPE
3835 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3837 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3838 DRAPE(I)%NPLY_DRAPE = NPT_DRAPE
3839 NPT = IWORKSH(1,IDSHEL)
3841 DRAPEG%INDX(IDSHEL) = I
3842 ALLOCATE(DRAPE(I)%DRAPE_PLY(NPT_DRAPE))
3843 ALLOCATE(DRAPE(I)%INDX_PLY(NPT))
3844 DRAPE(I)%INDX_PLY = 0
3846 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3847 DRAPE(I)%INDX_PLY(IP) = JJ
3848 NSLICE = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%NSLICE
3849 DRAPE(I)%DRAPE_PLY(JJ)%NSLICE = NSLICE
3850 DRAPE(I)%DRAPE_PLY(JJ)%IPID = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IPID
3851 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(NSLICE,2))
3852 ALLOCATE(DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(NSLICE,2))
3854 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,1)
3855 DRAPE(I)%DRAPE_PLY(JJ)%RDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE(ISL,2)
3856 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,1) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,1)
3857 DRAPE(I)%DRAPE_PLY(JJ)%IDRAPE(ISL,2) = DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE(ISL,2)
3858 ENDDO ! nbre of slice
3861 !! Deallocation of work drape memory
3862 DO I=1,NUMELC_DRAPE + NUMELTG_DRAPE
3864 NPT = IWORKSH(1,IDSHEL)
3865 IF(ALLOCATED(DRAPE_WRK(IDSHEL)%DRAPE_PLY)) THEN
3866 NPT_DRAPE = DRAPE_WRK(IDSHEL)%NPLY_DRAPE
3868 IP = DRAPE_WRK(IDSHEL)%INDX_PLY(JJ)
3869 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%RDRAPE,DRAPE_WRK(IDSHEL)%DRAPE_PLY(IP)%IDRAPE)
3871 DEALLOCATE(DRAPE_WRK(IDSHEL)%DRAPE_PLY)
3874 DEALLOCATE(DRAPE_WRK)
3877 IF(ALLOCATED(IDRAPEID)) DEALLOCATE(IDRAPEID)
3879.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3880 CALL STACKGROUP_DRAPE(DRAPE, DRAPEG , IWORK_T , IWORKSH ,
3881 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3882 . IGEO ,GEO ,THKE , STACK ,
3883 . IGEO_STACK ,GEO_STACK , STACK_INFO ,
3884 . NUMGEOSTACK,NPROP_STACK,PLY_INFO)
3885 stack%s_pm2 = size(stack%pm,dim=2)
3887 ALLOCATE(STACK%GEO(0,0))
3888 ALLOCATE(STACK%IGEO(0,0))
3889 ALLOCATE(STACK%PM(stack_s_pm1,stack%s_pm2))
3891 ELSE ! with out drape
3893 ALLOCATE(DRAPEG%INDX(0))
3894.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) THEN
3896 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
3897 . IGEO ,GEO ,IWORKSH ,THKE ,
3898 . STACK ,IPM ,IGEO_STACK ,GEO_STACK ,
3899 . STACK_INFO ,NUMGEOSTACK,NPROP_STACK)
3900 stack%s_pm2 = size(stack%pm,dim=2)
3902 ALLOCATE(STACK%GEO(0,0))
3903 ALLOCATE(STACK%IGEO(0,0))
3904 ALLOCATE(STACK%PM(stack_s_pm1,stack%s_pm2))
3908 IF(NSUBDOM==0) GOTO 218
3912 WRITE(ISTDO,'(a)
')' .. multidomains interfaces detection
'
3913 IDXCNT= 1 ! used by temporary local array "IBUFTMP"
3916 IDX1 = MOD(IDXCNT,2)
3917 IDX2 = MOD(IDXCNT+1,2)
3924 RSIBUFSSG=NUMNOD+NSUBDOM
3925.OR.
IF(RSIBUFSSG > INTMAX RSIBUFSSG < ZERO) THEN
3928 SIBUFSSG = INT(RSIBUFSSG)
3930 ALLOCATE(IBUFTMP(IDX1)%ptr(SIBUFSSG),STAT=stat)
3932 CALL ANCMSG(MSGID=727,
3939 ALLOCATE(TAGNO(2*NUMNOD+NPART),STAT=stat)
3940 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3944 ALLOCATE(NALE_R2R(ALE%GLOBAL%SNALE),STAT=stat)
3945 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3949 ALLOCATE(DT_R2R(4*NSUBDOM),STAT=stat)
3950 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
3955 CALL R2R_GROUP(NGRNOD,
3956 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3957 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,1,
3958 3 IBUFTMP(IDX1)%ptr,IXR_KJ,INOM_OPT,IPART,
3959 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3960 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3961 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3962 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3963 8 NLOC_DMG ,DETONATORS,SEATBELT_SHELL_TO_SPRING,
3964 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM,NEBCS)
3966 ALLOCATE(IBUFTMP(IDX2)%ptr(SIBUFSSG+INNOD) ,STAT=stat)
3968 CALL ANCMSG(MSGID=727,
3973 IBUFTMP(IDX2)%ptr = 0
3975 IBUFTMP(IDX2)%ptr(I) = IBUFTMP(IDX1)%ptr(I)
3977 SIBUFSSG = SIBUFSSG+INNOD
3978 DEALLOCATE(IBUFTMP(IDX1)%ptr)
3983 CALL R2R_GROUP(NGRNOD,
3984 1 INNOD,FLAGG,IPARTS,IPARTQ,IPARTC,IPARTT,IPARTP,
3985 2 IPARTR,IPARTG,IPARTSP,IXS10,IXS20,IXS16,2,
3986 3 IBUFTMP(IDX2)%ptr,IXR_KJ,INOM_OPT,IPART,
3987 4 IADBUF,NALE_R2R,FLG_R2R_ERR ,
3988 5 STACK%PM ,IWORKSH ,IGRBRIC ,IGRQUAD ,IGRSH4N ,
3989 6 IGRSH3N ,IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRNOD ,
3990 7 IGRSURF ,IGRSLIN, LSUBMODEL,ALE_EULER ,IGEO ,
3991 8 NLOC_DMG ,DETONATORS,SEATBELT_SHELL_TO_SPRING,
3992 9 NB_SEATBELT_SHELLS,MAT_ELEM%MAT_PARAM,NEBCS)
3996 WRITE(ISTDO,'(a)
')' .. multidomains
DATA split '
4000 2 NSURF,0,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
4001 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
4002 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
4003 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
4004 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
4005 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
4009 2 NSURF,1,EANI,IBUFTMP(IDX2)%ptr,IXR_KJ,
4010 3 INOM_OPT,RESERVEP,NALE_R2R,NSPCOND0,
4011 4 SUBSETS,IGRSURF,IGRNOD,IGRBRIC,IGRQUAD,
4012 5 IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,IGRSPRING,
4013 6 IGRPART,IGRSLIN,LSUBMODEL,RBY_MSN,IWORKSH,
4014 7 SEATBELT_SHELL_TO_SPRING,NB_SEATBELT_SHELLS)
4015 DEALLOCATE(IBUFTMP(IDX2)%ptr)
4020 WRITE(ISTDO,'(a)
')' .. multidomains
DATA update
'
4021 DEALLOCATE(KNOD2ELS,KNOD2ELC,KNOD2ELTG,KNOD2EL1D,KNOD2ELIG3D,KNOD2ELQ)
4022 DEALLOCATE(NOD2ELS,NOD2ELC,NOD2ELTG,NOD2EL1D,NOD2ELIG3D,NOD2ELQ)
4024 ALLOCATE(XYZREF(3*NUMNOD) ,STAT=stat)
4025 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4032 IENTRY2(1:NUMNOD) = -1
4033 FLAGKIN(1:NUMNOD) = 0
4037 IF(FRONT_R2R(I)==1)THEN
4038 CALL IFRONTPLUS(I,1)
4039 !FLAGKIN array to identify boundary nodes with
4040 !kinematic constraints (old FRONT TAG=10)
4041 IF(FLAGKIN_R2R(I)==1)FLAGKIN(I)=1
4045 DEALLOCATE(FRONT_R2R,FLAGKIN_R2R)
4046 SFRONTB_R2R = NUMNOD
4047 SNOM_OPT_OLD = SNOM_OPT
4058 CALL R2R_NOM_OPT(NOM_OPT,INOM_OPT,IN10,IN20,SNOM_OPT_OLD)
4075 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4076 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4077 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4078 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4079 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4080 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4082 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4085 CALL SAV_BUF_POINT(PM ,1)
4086 CALL SAV_BUF_POINT(BUFMAT ,2)
4087 CALL SAV_BUF_POINT(GEO ,3)
4088 CALL SAV_BUF_POINT(ISKWN ,7)
4089 CALL SAV_BUF_POINT(SKEW ,8)
4090 CALL SAV_BUF_POINT(IPM ,11)
4091 CALL SAV_BUF_POINT(IGEO,12)
4096.NOT.
IF( ALLOCATED(TAGNO)) ALLOCATE(TAGNO(0))
4097.NOT.
IF( ALLOCATED(NALE_R2R)) ALLOCATE(NALE_R2R(0))
4098.NOT.
IF( ALLOCATED(DT_R2R)) ALLOCATE(DT_R2R(0))
4105 CALL R2R_CHECK(IEXLNK,IGRNOD,IPART)
4108 ALLOCATE(FRONTB_R2R(SFRONTB_R2R,NSPMD),STAT=stat)
4109 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4117 CALL SORT_SURF(IGRSURF,IXS,IXC,IXTG,IXQ,IXP,IXR,IXT, KXX,NIXX)
4120 1 ITAB ,ITABM1 ,IGRNOD ,NINICRACK,BUFSF ,
4121 2 IGRSURF ,IGRSLIN ,INICRACK ,IXS ,IXQ ,
4122 3 IXC ,IXT ,IXP ,IXR ,IXTG ,
4123 4 IXS10 ,IXS20 ,IXS16 ,IPART ,
4124 5 KXX ,IXIG3D ,KXIG3D ,
4125 6 IGRQUAD ,IGRBRIC ,IGRSH4N ,IGRSH3N ,IGRTRUSS,
4126 7 IGRBEAM ,IGRSPRING,IGRPART )
4128 DEALLOCATE(KXX,IXX,LELX)
4132 ERR_MSG='transformations
'
4133 ERR_CATEGORY='transformations
'
4134 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4135 CALL LECTRANS(X ,IGRNOD ,ITAB ,ITABM1 ,UNITAB,
4136 . LSUBMODEL,RTRANS ,IGRSURF,ISKWN ,SKEW ,
4137 . LISKN ,LSKEW ,NSPCOND,NUMSPH ,SISKWN,
4144 ERR_MSG='/
merge/node
'
4145 ERR_CATEGORY='/
merge/node
'
4147 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4149 ALLOCATE(MERGE_NODE_TAB(4*NB_MERGE_NODE),STAT=stat)
4150 ALLOCATE(MERGE_NODE_TOL(NB_MERGE_NODE),STAT=stat)
4152 MERGE_NODE_TOL = ZERO
4153 NMERGE_NODE_CAND = 0
4154 NMERGE_NODE_DEST = 0
4156 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4159 IF(NB_MERGE_NODE > 0) THEN
4160 CALL HM_READ_MERGE_NODE(X,LSUBMODEL,UNITAB,IGRNOD,MERGE_NODE_TAB,
4161 . MERGE_NODE_TOL,NMERGE_NODE_CAND,NMERGE_NODE_DEST)
4168 ERR_MSG='merging nodes
'
4169 ERR_CATEGORY='merging nodes
'
4170 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4172 NMERGE_TOT = NUMCNOD + NMERGE_NODE_DEST
4173 ALLOCATE(IMERGE(3*NMERGE_TOT),STAT=stat)
4174 ALLOCATE(IMERGE2(NUMNOD+1),STAT=stat)
4175 ALLOCATE(IADMERGE2(NUMNOD+1),STAT=stat)
4177 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4188 . CALL MERGE(X ,ITAB ,ITABM1 ,CMERGE ,IMERGE,
4189 . IMERGE2,IADMERGE2,NMERGE_TOT)
4193 IF(NB_MERGE_NODE > 0)
4194 . CALL MERGE_NODE(X ,ITAB ,ITABM1 ,IMERGE,IMERGE2,
4195 . IADMERGE2,NMERGE_TOT,MERGE_NODE_TAB,MERGE_NODE_TOL,
4196 . NMERGE_NODE_CAND,NMERGE_NODE_DEST,IXS,IXS10,IXS20,
4197 . IXS16,IXQ,IXC,IXT,IXP,
4198 . IXR,IXTG,EANI,IGRNOD)
4204 ERR_MSG='reinit connectivity
'
4205 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4206 IF(NMERGED > 0) THEN
4208 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
4209 . IXC ,IXT ,IXP ,IXR ,IXTG ,
4210 . IGRNOD ,IGRSURF ,IGRSLIN ,
4211 . ISKWN ,IMERGE ,NMERGE_TOT)
4226 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
4227 3 IXR ,IXTG ,IXS10 ,IXS20 ,
4228 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
4229 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
4230 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
4231 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
4238 ERR_MSG='random
noise'
4239 ERR_CATEGORY='random
noise'
4240 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4244 IF(RAND_STRUCT%CMD) NRAND = NRAND + 1
4245 ALLOCATE(IRAND(NRAND),STAT=stat)
4246 ALLOCATE(ALEA(NRAND) ,STAT=stat)
4247 ALLOCATE(XSEED(NRAND),STAT=stat)
4249 CALL HM_READ_RAND(X ,IGRNOD ,ITAB,IRAND,ALEA,XSEED,
4257 ERR_CATEGORY='seatbelts
'
4258 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4261 CALL HM_OPTION_COUNT('/mat/law114
',NB_MAT)
4262 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4263 CALL HM_OPTION_COUNT('/mat/spr_seatbelt
',NB_MAT)
4264 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4265 CALL HM_OPTION_COUNT('/mat/law119
',NB_MAT)
4266 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4267 CALL HM_OPTION_COUNT('/mat/sh_seatbelt
',NB_MAT)
4268 NB_MAT_SEATBELT = NB_MAT_SEATBELT + NB_MAT
4271 IF(NSLIPRING > 0) CALL HM_READ_SLIPRING(
4272 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4273 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(31)+1),ALEA,IGRNOD,
4275 IF(NRETRACTOR > 0) CALL HM_READ_RETRACTOR(
4276 1 LSUBMODEL,ITABM1,IXR,ITAB,UNITAB,
4277 2 X,NPC1,NOM_OPT(LNOPT1*INOM_OPT(32)+1),ALEA,IPM)
4284 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4286 CALL HM_PREREAD_BCSCYC(IGRNOD ,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL,SLBCSCYC)
4288 SIBCSCYC = 4*NBCSCYC
4289 ALLOCATE(IBCSCYC(SIBCSCYC),LBCSCYC(SLBCSCYC),STAT=stat)
4291.OR..OR.
IF(NUMBCS /= 0 NALEBCS /= 0 NUMBCSN /= 0) THEN
4292 WRITE(ISTDO,'(a)
')TITRE(13)
4294 CALL HM_READ_BCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4295 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4296 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4297 . UNITAB ,LSUBMODEL,IBCSCYC,LBCSCYC)
4299 CALL HM_READ_ALEBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4300 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4301 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),
4304 CALL HM_READ_NBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4305 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4306 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1),LSUBMODEL)
4308 CALL PRINTBCS(ICODE ,ISKEW ,ITAB ,ITABM1 ,D ,
4309 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF ,LAG_NHF,
4310 . IKINE1LAG,ISKWN,NOM_OPT(LNOPT1*INOM_OPT(16)+1), NBCSLAG)
4315 ALLOCATE(ICODEP(0),ISKEWP(0))
4318 ERR_MSG='adaptive meshing bcs
'
4319 ERR_CATEGORY='adaptive meshing bcs
'
4320 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4322 CALL ADMBCS(IXC ,IPARTC,IXTG,IPARTG,IPART ,
4323 . ICODE,ISKEW,ITAB,SH4TREE,SH3TREE)
4329 ERR_MSG='solids sort
'
4330 ERR_CATEGORY='internal
'
4331 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4332 SIWORK = 2*MAX(NUMELS,NUMELQ)
4333 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
4334 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4339 . IXS ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4340 . ICODE ,IPARTS ,IGRBRIC ,GEO ,EANI ,
4341 . IXS10 ,IPART ,IXS20 ,IXS16 ,KNOD2ELS,NOD2ELS ,
4342 . IGRSURF,SPH2SOL ,SOL2SPH )
4345 . IXQ ,BID13 ,PM ,IWORK ,ITAB ,ITABM1 ,
4346 . ICODE ,IPARTQ ,IGRQUAD ,IPM ,IGEO )
4347 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
4353 ERR_CATEGORY='mpcs 1
'
4354 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4356 CALL HM_READ_MPC0 (LMPC,LSUBMODEL)
4361 ALLOCATE(RBMPC(SRBMPC) ,STAT=stat)
4362 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4365 IF(SRBMPC > 0) RBMPC = ZERO
4370 ERR_MSG='dynamic storage real
'
4371 ERR_CATEGORY='internal
'
4372 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4373 SGJBUFR = LKJNR*NGJOINT
4377 SVEUL = (LVEUL*NUMELS+10*NUMELQ)*IEULER
4378 SVEUL8 = (INT(LVEUL,KIND(SVEUL8))*NUMELSK8+10*NUMELQK8)*INT(IEULER,KIND(SVEUL8))
4379 SFILL = NMULT*NUMNOD
4380 SDFILL = NMULT*NUMNOD
4381 SALPH = 2*NMULT*(NUMELQ+NUMELS)
4383 IF(ALE%GRID%NWALE == 2) THEN
4385 ELSEIF(ALE%GRID%NWALE == 4) THEN
4388 ALLOCATE(WB(SWB) ,STAT=stat)
4389 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4392 IF(SWB > 0) WB = ZERO
4393 IF(ALE%GRID%NWALE == 4) THEN
4394 WMA => WB(3*NUMNOD+1:SWB)
4401.AND.
IF(ILAG == 1 (IALE+IEULER) > 0) THEN
4405 ALLOCATE(GJBUFR(SGJBUFR) ,STAT=stat)
4406 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4409 ALLOCATE(W(SW) ,STAT=stat)
4410 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4413 ALLOCATE(VEUL(SVEUL8) ,STAT=stat)
4414 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4417 ALLOCATE(FILL(SFILL) ,STAT=stat)
4418 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4421 ALLOCATE(DFILL(SDFILL) ,STAT=stat)
4422 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4425 ALLOCATE(ALPH(SALPH) ,STAT=stat)
4426 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4429 ALLOCATE(DSAVE(SDSAVE) ,STAT=stat)
4430 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4433 ALLOCATE(ASAVE(SASAVE) ,STAT=stat)
4434 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4437 IF(SGJBUFR > 0) GJBUFR = ZERO
4439 IF(SVEUL8 > 0) VEUL = ZERO
4440 IF(SFILL > 0) FILL = ZERO
4441 IF(SDFILL > 0) DFILL = ZERO
4442 IF(SALPH > 0) ALPH = ZERO
4443 IF(SDSAVE > 0) DSAVE = ZERO
4444 IF(SASAVE > 0) ASAVE = ZERO
4450 ERR_CATEGORY='gjoints
'
4451 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4453 IF(ISMS/=0) JOINT_SMS = .TRUE.
4454 IF(NGJOINT/=0) CALL HM_READ_GJOINT(
4455 1 GJBUFI ,GJBUFR ,ITAB ,ITABM1 ,X ,
4456 2 MS ,IN ,LAG_NCF ,LAG_NKF ,LAG_NHF ,
4457 3 D ,UNITAB ,IKINE1LAG,NOM_OPT(LNOPT1*INOM_OPT(18)+1),LSUBMODEL)
4462 ERR_MSG='detonators
'
4463 ERR_CATEGORY='detonators
'
4464 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4466 CALL READ_DETONATORS(ITABM1 ,ITAB ,IGRNOD ,
4467 . PM ,IPM ,X ,UNITAB ,
4468 . LSUBMODEL,DETONATORS)
4475 CALL ALE_CONNECTIVITY%ALE_CONNECTIVITY_INIT()
4478 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4480 WRITE(ISTDO,'(a)
')TITRE(29)
4483 ALLOCATE(LINALE(SLINALE),STAT=stat)
4485 WRITE(IOUT,*) ' ** error in memory allocation
'
4486 WRITE(ISTDO,*)' ** error in memory allocation
'
4488 CALL HM_READ_ALE_LINK(ICODE, ISKEW, ITAB, ITABM1, D,
4489 . IGRNOD, IBCSLAG, LAG_NCF, LAG_NKF, LAG_NHF,
4490 . IKINE1LAG, LINALE, LSUBMODEL, UNITAB)
4494 ERR_MSG='ale neighbours
'
4495 IF(IALE+IEULER+IALELAG /= 0)THEN
4496 WRITE(ISTDO,'(a)
')TITRE(30)
4498 1 ICODE ,IXS ,IXQ ,IXC ,IXT ,
4499 2 IXTG ,PM ,IGEO ,ITAB ,GEO ,
4500 3 NALE_R2R ,NSUBDOM ,MULTI_FVM ,ALE_CONNECTIVITY,GLOB_THERM%ITHERM,DETONATORS%IS_SHADOWING_REQUIRED)
4504 IF(MULTI_FVM%IS_USED) THEN
4505 CALL MULTI_UNPLUG_NEIGHBORS(ALE_CONNECTIVITY, IXS, IXQ, IXTG)
4512 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4514 WRITE(ISTDO,'(
'' .. multimaterials
'')
')
4516 . CALL INIMU3(PM ,IXS ,FILL ,DFILL )
4518 . CALL INIMU2(PM ,IXQ ,FILL ,DFILL )
4519 CALL INIMUL (PM ,FILL ,DFILL ,MAT20_DISCRETE_FILL)
4526 ERR_MSG='cfd boundary elements
'
4527 ERR_CATEGORY='cfd boundary elements
'
4528 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4530 + CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
4537 ERR_MSG='multi-purpose elements
'
4538 ERR_CATEGORY='multi-purpose elements
'
4539 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4542 CALL HM_PREREAD_XELEM(SIXX, IGRNOD,LSUBMODEL)
4543 ALLOCATE(KXX(SKXX) ,STAT=stat)
4544 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4547 ALLOCATE(IXX(SIXX+150) ,STAT=stat)
4548 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4553 ALLOCATE(LELX(NUMELX) ,STAT=stat)
4555 CALL HM_READ_XELEM(IGRNOD ,ITAB ,ITABM1 ,IPART ,IPARTX,
4556 . IPM ,IGEO ,KXX ,IXX ,LSUBMODEL)
4560 ALLOCATE(KXX(SKXX) ,STAT=stat)
4561 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4564 ALLOCATE(IXX(SIXX) ,STAT=stat)
4565 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4568 ALLOCATE(LELX(NUMELX) ,STAT=stat)
4575 ERR_CATEGORY='sph sym
'
4576 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4577 SISPSYM = NSPCOND*NUMSPH
4578 SISPCOND = NSPCOND*NISPCOND
4579 ALLOCATE(ISPSYM(SISPSYM) ,STAT=stat)
4580 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4583 ALLOCATE(ISPCOND(SISPCOND) ,STAT=stat)
4584 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4587 IF(NSPCOND > 0) THEN
4590 WRITE(ISTDO,'(a)
')' .. sph symmetry conditions
'
4591 CALL HM_READ_SPCND(ISPCOND ,ISKEW ,ITAB ,ITABM1 ,D ,
4592 . IGRNOD ,NOD2SP ,IFRAME ,NOM_OPT(LNOPT1*INOM_OPT(23)+1),
4600 ERR_CATEGORY='sph i/o
'
4601 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4603 SISPHIO = NISPHIO*NSPHIO
4604 SSPHVELN= NSPHIO*NUMSPH*2
4605 ALLOCATE(ISPHIO(SISPHIO) ,STAT=stat)
4606 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4609 ALLOCATE(SPHVELN(SSPHVELN) ,STAT=stat)
4610 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4615 WRITE(ISTDO,'(a)
')' .. sph inlet/outlet definition
'
4618 CALL HM_PREREAD_SPHIO(IGRSURF ,SVSPHIO ,
4619 . NOM_OPT(LNOPT1*INOM_OPT(22)+1),
4621 ALLOCATE(VSPHIO(SVSPHIO) ,STAT=stat)
4622 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4625 VSPHIO(1:SVSPHIO)=ZERO
4630 CALL HM_READ_SPHIO(ISPHIO ,VSPHIO ,IPART ,IGRSURF ,
4631 . NOD2SP ,IPARTSP ,ITAB ,X ,
4632 . LVSPHIO ,LWASPIO ,ITABM1 ,UNITAB ,
4633 . LSUBMODEL,RTRANS ,NRTRANS )
4637 SLPRTSPH = 2*(NPART+1)
4639 ALLOCATE(LPRTSPH(SLPRTSPH) ,STAT=stat)
4640 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4643 ALLOCATE(LONFSPH(SLONFSPH) ,STAT=stat)
4644 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4649 CALL SPHONF0(KXSP ,IXSP ,NOD2SP ,IPART ,IPARTSP ,
4650 . LPRTSPH ,LONFSPH )
4661 ALLOCATE(LPRTSPH(SLPRTSPH) ,STAT=stat)
4662 ALLOCATE(LONFSPH(SLONFSPH) ,STAT=stat)
4663 ALLOCATE(VSPHIO(SVSPHIO) ,STAT=stat)
4670 CALL SPINIH(KXSP ,IPART ,IPARTSP ,SPBUF ,PM,
4671 . IXSP ,NOD2SP ,X ,LPRTSPH,LONFSPH,
4672 . SNOD2SP ,SLONFSPH,NUMNOD,NPART,ITAB)
4677 SZ_INTP_DIST = 1 ! Array MAX_INTP_DIST_PART not used for full search siz=1
4678 CALL SPTRI(KXSP ,IXSP ,NOD2SP ,X ,SPBUF ,
4679 . LPRTSPH ,LONFSPH ,IPARTSP ,SZ_INTP_DIST,MAX_INTP_DIST_PART,
4686 ERR_MSG='fluid nodal masses
'
4687 ERR_CATEGORY='fluid nodal masses
'
4688 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4689 SMSNF = NUMNOD*MAX(IALE,IEULER,IALELAG)
4690 ALLOCATE(MSNF(SMSNF) ,STAT=stat)
4691 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4699 ERR_MSG='concentred loads
'
4700 ERR_CATEGORY='concentred loads
'
4701 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4704 LOADS%NLOAD_CLOAD = 0
4705 LOADS%NLOAD_PLOAD = 0
4706 IF(NSUBDOM>0) ALLOCATE(NNCL(NCONLD+NPRELD))
4707 CALL HM_PREREAD_CLOAD(NUMCLD, IGRNOD ,IGRSURF,LSUBMODEL)
4708 CALL HM_PREREAD_PLOAD(NUMPRES,IGRNOD ,IGRSURF,LSUBMODEL)
4709 SIBCL = (NUMCLD + NUMPRES)*NIBCLD
4710 SFORC = (NUMCLD + NUMPRES)*LFACCLD
4711 ALLOCATE(IBCL(SIBCL) ,STAT=stat)
4712 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4715 ALLOCATE(FORC(SFORC) ,STAT=stat)
4716 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4719 ALLOCATE(DPL0CLD(6*(NUMCLD+NUMPRES)) ,STAT=stat)
4720 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4723 ALLOCATE(VEL0CLD(6*(NUMCLD+NUMPRES)) ,STAT=stat)
4724 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4728 IPRES => IBCL(NUMCLD*NIBCLD+1:SIBCL)
4740 WRITE(ISTDO,'(a)
')TITRE(33)
4742 CALL HM_READ_CLOAD(IBCL ,FORC ,NCONLD,ITAB ,ITABM1 ,
4743 . IGRNOD ,IBCL ,UNITAB,ISKWN ,LSUBMODEL,
4745 IF(NCONLD*LFACCLD<SFORC) THEN
4746 PRES => FORC(NCONLD*LFACCLD+1:SFORC)
4751 IF(NCONLD*LFACCLD<SFORC) THEN
4752 PRES => FORC(NCONLD*LFACCLD+1:SFORC)
4760 ERR_MSG='pressure loads
'
4761 ERR_CATEGORY='pressure loads
'
4762 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4764 WRITE(ISTDO,'(a)
')TITRE(34)
4765 CALL HM_READ_PLOAD(IPRES ,PRES ,NPRELD ,ITAB ,ITABM1,
4766 . IGRSURF ,UNITAB ,LSUBMODEL ,LOADS )
4767 NCONLD=NCONLD+NPRELD
4771 IF(NSUBDOM>0) DEALLOCATE(NNCL)
4775 CALL HM_READ_PCYL(LOADS ,IGRSURF ,SENSORS%NSENSOR,SENSORS%SENSOR_TAB ,TABLE ,
4776 . IFRAME ,UNITAB ,LSUBMODEL,NUMBER_LOAD_CYL )
4780 ERR_MSG = 'load fields
'
4781 ERR_CATEGORY = 'load fields
'
4782 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4785 CALL HM_PREREAD_LOAD_CENTRI(NUMCFIELD,IGRNOD,IGRSURF,LSUBMODEL)
4786 SCFIELD = LFACLOAD*NLOADC
4787 SICFIELD = SIZFIELD*NLOADC
4788 SLCFIELD = NUMCFIELD
4793 CALL HM_PREREAD_PFLUID(NUMLOADP,IGRNOD,IGRSURF,LSUBMODEL)
4794 CALL HM_PREREAD_PBLAST(PBLAST,NUMLOADP,IGRSURF,LSUBMODEL,NSURF)
4795 CALL HM_PREREAD_LOAD_PRESSURE(NUMLOADP,IGRSURF,LSUBMODEL)
4796 NLOADP = NLOADP_F+PBLAST%NLOADP_B+NLOADP_HYD
4797 SLOADP = LFACLOAD*NLOADP
4798 SILOADP = SIZLOADP*NLOADP
4805 ERR_MSG='imposed velocities
'
4806 ERR_CATEGORY='imposed velocities
'
4807 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4809 NFVLAG = 0 ! Lagrangian multiplier flag
4819 CALL HM_PREREAD_IMPDISP(NIMPDISP ,IGRNOD ,IPART ,IPARTR ,
4820 . UNITAB ,LSUBMODEL)
4822 CALL HM_PREREAD_IMPVEL(NIMPVEL ,IGRNOD ,IPART ,IPARTR , NFVLAG,
4823 . UNITAB ,LSUBMODEL)
4825 CALL HM_PREREAD_IMPACC(NIMPACC ,IGRNOD ,LSUBMODEL)
4827 NFXVEL = NIMPDISP + NIMPVEL + NIMPACC
4836 SIBFV = NFXVEL * NIFV
4837 SVEL = NFXVEL * LFXVELR
4839 ALLOCATE(IBFV(SIBFV) ,STAT=stat)
4840 ALLOCATE(VEL(SVEL ) ,STAT=stat)
4847 WRITE(ISTDO,'(a)
')TITRE(44)
4849 CALL HM_READ_IMPVEL(
4850 . VEL ,IBFV ,D ,IKINE1LAG,
4851 . ITAB ,ITABM1 ,IGRNOD ,X ,IXR ,
4852 . IPART ,IPARTR ,ISKWN ,NOM_OPT(LNOPT1*INOM_OPT(15)+1),
4853 . NIMPDISP ,NIMPVEL ,UNITAB ,LSUBMODEL)
4859 IF(NIMPACC > 0) THEN
4860 CALL HM_READ_IMPACC(
4861 . VEL ,IBFV ,NFXVEL0 ,ITAB ,ITABM1 ,
4862 . D ,IGRNOD ,ISKWN ,UNITAB ,LSUBMODEL,
4867 IF(NBCSCYC > 0) THEN
4868 ALLOCATE(ITAGCYC(NUMNOD) ,STAT=stat)
4869 CALL INI_BCSCYC(IBCSCYC,LBCSCYC,SKEW,X,ITAB,ICODE,IBFV,ITAGCYC)
4871 ALLOCATE(ITAGCYC(0))
4874 SFSAV = NTHVKI * (NINTER+NRWALL+NRBODY+NSECT+NJOINT+NRBAG+NVOLU+NMONVOL+NFXBODY+NINTSUB)
4875 ALLOCATE(FSAV(SFSAV) ,STAT=stat)
4885 NINTEMP = GLOB_THERM%NINTEMP
4886 IF (IALE + IEULER /= 0) THEN
4887.AND..OR.
IF (GLOB_THERM%ITHERM_FE == 0 (GLOB_THERM%NIMTEMP /= 0 NINTEMP /= 0)) THEN
4888 CALL ANCMSG(MSGID=1724, ANMODE=ANINFO, MSGTYPE=MSGWARNING)
4891 ERR_MSG='initial temperatures
'
4892 ERR_CATEGORY='initial temperatures
'
4893 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4895 IF (GLOB_THERM%NINTEMP > 0) THEN
4896 WRITE(ISTDO,'(a)
')TITRE(35)
4897 ALLOCATE(TEMP(NUMNOD))
4898 TEMP(1:NUMNOD) = ZERO
4899 ALLOCATE(INTIDS(NINTEMP))
4900 CALL HM_READ_INITEMP(TEMP ,NINTEMP ,GLOB_THERM%ITHERM_FE,ITAB ,ITABM1 ,
4901 . IGRNOD ,INTIDS ,UNITAB,LSUBMODEL )
4905 IF (GLOB_THERM%ITHERM_FE > 0 ) THEN
4906 ALLOCATE(MCP(NUMNOD))
4907.NOT.
IF (ALLOCATED(TEMP)) THEN
4908 ALLOCATE(TEMP(NUMNOD))
4909 TEMP(1:NUMNOD) = ZERO
4911 MCP (1:NUMNOD) = ZERO
4913 CALL HM_PREREAD_IMPTEMP(IGRSURF, IGRNOD, IGRBRIC, UNITAB, LSUBMODEL,
4914 . GLOB_THERM%NIMTEMP,GLOB_THERM%NFXTEMP)
4916 CALL HM_PREREAD_CONVEC(IGRSURF, IGRNOD, IGRBRIC, UNITAB, LSUBMODEL,
4917 . GLOB_THERM%NCONVEC ,GLOB_THERM%NUMCONV )
4919 CALL HM_PREREAD_RADIATION(IGRSURF, IGRNOD, IGRBRIC,UNITAB, LSUBMODEL,
4920 . GLOB_THERM%NRADIA ,GLOB_THERM%NUMRADIA)
4922 CALL HM_PREREAD_IMPFLUX(IGRSURF, IGRNOD, IGRBRIC,UNITAB, LSUBMODEL,
4923 . GLOB_THERM%NIMPFLUX,GLOB_THERM%NFXFLUX)
4926 ALLOCATE(IBCV(GLOB_THERM%NICONV*GLOB_THERM%NUMCONV) ,STAT=stat)
4927 ALLOCATE(FCONV(GLOB_THERM%LFACTHER*GLOB_THERM%NUMCONV) ,STAT=stat)
4928 ALLOCATE(IBFTEMP(GLOB_THERM%NIFT*GLOB_THERM%NFXTEMP) ,STAT=stat)
4929 ALLOCATE(FBFTEMP(GLOB_THERM%LFACTHER*GLOB_THERM%NFXTEMP),STAT=stat)
4930 ALLOCATE(IBFFLUX(GLOB_THERM%NITFLUX*GLOB_THERM%NFXFLUX) ,STAT=stat)
4931 ALLOCATE(FBFFLUX(GLOB_THERM%LFACTHER*GLOB_THERM%NFXFLUX),STAT=stat)
4932 ALLOCATE(IBCR(GLOB_THERM%NIRADIA*GLOB_THERM%NUMRADIA) ,STAT=stat)
4933 ALLOCATE(FRADIA(GLOB_THERM%LFACTHER*GLOB_THERM%NUMRADIA),STAT=stat)
4935 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
4937 . C1='thermal data
')
4938 IBCR(1:GLOB_THERM%NIRADIA*GLOB_THERM%NUMRADIA) = 0
4940 IF (GLOB_THERM%NUMCONV > 0 ) THEN
4943 CALL HM_READ_CONVEC(IBCV,FCONV,ITAB,IXS,IGRSURF,UNITAB,LSUBMODEL,
4944 . GLOB_THERM%NCONVEC ,GLOB_THERM%NICONV,GLOB_THERM%NUMCONV,GLOB_THERM%LFACTHER)
4947 IF (GLOB_THERM%NUMRADIA > 0 ) THEN
4948 CALL HM_READ_RADIATION(IBCR,FRADIA,ITAB,IXS,IGRSURF,UNITAB,LSUBMODEL,
4949 . GLOB_THERM%NRADIA ,GLOB_THERM%NUMRADIA,GLOB_THERM%NIRADIA,GLOB_THERM%LFACTHER)
4952 IF (GLOB_THERM%NFXTEMP > 0) THEN
4955 CALL HM_READ_IMPTEMP(IBFTEMP,FBFTEMP,GLOB_THERM%NFXTEMP,ITABM1,
4956 . IGRNOD ,IBFTEMP,ITAB ,UNITAB,LSUBMODEL,
4957 . GLOB_THERM%NIMTEMP,GLOB_THERM%NIFT,GLOB_THERM%LFACTHER)
4960 IF (GLOB_THERM%NFXFLUX > 0 ) THEN
4963 CALL HM_READ_IMPFLUX(IBFFLUX ,FBFFLUX ,ITAB ,IXS ,IGRSURF ,
4964 . UNITAB ,IGRNOD ,IGRBRIC, LSUBMODEL,
4965 . GLOB_THERM%NIMPFLUX,GLOB_THERM%NITFLUX,GLOB_THERM%LFACTHER)
4970 ALLOCATE(IBCV(0),FCONV(0),IBFTEMP(0),FBFTEMP(0),
4971 . IBFFLUX(0),FBFFLUX(0),IBCR(0),FRADIA(0))
4972.NOT.
IF ( ALLOCATED(TEMP)) ALLOCATE(TEMP(0))
4977.OR.
IF(ISIGI==2 ISIGI==4) THEN
4979 ELSEIF(IABS(ISIGI)==5) THEN
4980 SFZERO = 3*4*(NUMELC+NUMELTG)
4984 ALLOCATE(FZERO(SFZERO) ,STAT=stat)
4985 IF(SFZERO > 0) FZERO = ZERO
4989 ERR_MSG='laser impacts
'
4990 ERR_CATEGORY='laser impacts
'
4991 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
4992 CALL LECLAS(LSUBMODEL)
4999 ERR_MSG='elementary boundary conditions
'
5000 ERR_CATEGORY='elementary boundary conditions
'
5001 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5002 EBCS_TAG_CELL_SPMD(1:NUMELQ+NUMELTG+NUMELS)=0
5003 CALL READ_EBCS(IGRSURF,MULTI_FVM,NPC1,LSUBMODEL,EBCS_TAB,N2D)
5006.NOT.
IF( ALLOCATED(SENSOR_TMP)) ALLOCATE( SENSOR_TMP(0) )
5007 CALL INIEBCS(ALE_CONNECTIVITY, 0, IGRSURF, IXS, IXQ, IXTG,
5008 . PM, IGEO, X, SENSOR_TMP, MONVOl, MULTI_FVM%IS_USED,
5009 . EBCS_TAB, EBCS_TAG_CELL_SPMD, ITABM1)
5010 DEALLOCATE(SENSOR_TMP)
5016 ERR_MSG='accelerometers
'
5017 ERR_CATEGORY='accelerometers
'
5018 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5019 SACCELM = NACCELM * LLACCELM
5020 ALLOCATE(ACCELM(SACCELM) ,STAT=stat)
5021 IF(SACCELM > 0) ACCELM = ZERO
5022 IF(NACCELM > 0) CALL LECACC(
5023 1 LACCELM,ACCELM ,ITABM1 ,UNITAB,IXC,
5024 2 ISKWN,NOM_OPT(LNOPT1*INOM_OPT(1)+1), LSUBMODEL)
5030 ERR_CATEGORY='gauges
'
5031 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5032 ALLOCATE(LGAUGE(3*NBGAUGE) ,STAT=stat)
5033 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5036 IF(NBGAUGE > 0) LGAUGE=0
5037 ALLOCATE(GAUGE(LLGAUGE*NBGAUGE) ,STAT=stat)
5038 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5041 IF(NBGAUGE > 0) GAUGE=ZERO
5042 IF(NBGAUGE > 0) CALL HM_READ_GAUGE(LGAUGE,GAUGE,ITABM1,UNITAB,IXC,NOM_OPT(LNOPT1*INOM_OPT(27)+1),LSUBMODEL)
5048 ERR_CATEGORY='sensors
'
5049 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5052 ! size initialization for user sensor
5053 CALL SENSOR_USER_INIT(SENSOR_USER_STRUCT)
5056 PYTHON%NB_SENSORS = 0
5057 CALL HM_READ_SENSORS(PYTHON,
5058 . SENSORS ,LACCELM ,ITABM1 ,IPART ,LGAUGE ,
5059 . SUBSETS ,NSETS ,IGRNOD ,
5060 . ISKWN ,UNITAB ,LSUBMODEL ,HM_NSENSOR,
5061 . SENSOR_USER_STRUCT)
5063 ! check if a user sensor is used with a list of node
5064 ! convert the list of User node ID into Local node ID
5066 IF(SENSOR_USER_STRUCT%IS_USED) THEN
5067 IF(SENSOR_USER_STRUCT%POINTER_NODE > 0) THEN
5068 CALL SENSOR_USER_CONVERT_LOCAL_ID(
5069 . ITABM1,SENSOR_USER_STRUCT%POINTER_NODE,SENSOR_USER_STRUCT%NUMBER_NODE,
5070 . SENSOR_USER_STRUCT%NODE_LIST,1,IPART)
5079 ERR_MSG='initial velocities
'
5080 ERR_CATEGORY='initial velocities
'
5081 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5084 ALLOCATE(RBY_INIAXIS(7,NRBODY))
5087 ALLOCATE(RBY_INIAXIS(0,0))
5090 NINIVELT = 0 ! /INIVEL w/ T_start
5091 IF(NINVEL > 0 ) CALL HM_PREREAD_INIVEL(LSUBMODEL,UNITAB,HM_NINVEL,NINIVELT)
5092 LOADS%NINIVELT = NINIVELT
5093.OR.
IF(NINVEL/=0ISIGI>=3)THEN
5095 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
5097 WRITE(ISTDO,'(a)
')TITRE(35)
5098 ALLOCATE(FVM_INIVEL(NINVEL))
5100 FVM_INIVEL(I)%FLAG = .FALSE.
5102 ALLOCATE(LOADS%INIVELT(NINIVELT) ,STAT=stat)
5104 CALL HM_READ_INIVEL(V , W , ITAB , ITABM1 , VR ,
5105 . IGRNOD , IGRBRIC, ISKWN , SKEW , IWORK ,
5106 . X , UNITAB , LSUBMODEL, RTRANS , XFRAME ,
5107 . IFRAME , VFLOW , WFLOW , KXSP , MULTI_FVM ,
5108 . FVM_INIVEL, IGRQUAD, IGRSH3N , RBY_MSN, RBY_INIAXIS,
5109 . SENSORS ,NINIVELT,LOADS%INIVELT)
5110 CALL INIVEL(V, VR, SVR_1, ITABM1)
5112 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
5116 ALLOCATE(FVM_INIVEL(0:0))
5119 IF(ALLOCATED(RBY_MSN)) DEALLOCATE(RBY_MSN)
5127 IF(BCS%NUM_WALL /= 0) THEN
5129 CALL HM_READ_BCS_WALL(UNITAB, LSUBMODEL, IGRNOD, NGRNOD, SENSORS, ITABM1, NUMNOD, MULTI_FVM)
5134 IF(BCS%NUM_NRF /= 0) THEN
5136 CALL HM_READ_BCS_NRF(LSUBMODEL, IGRNOD, NGRNOD, ITABM1, NUMNOD, MULTI_FVM)
5142 ERR_MSG='bolt preloading
'
5143 ERR_CATEGORY='bolt preloading
'
5144 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5146 NPRELOAD_A = NPRELOAD
5147 CALL HM_PRE_READ_PRELOAD_AXIAL(NGRSPRI,IGRSPRING,NPRELOAD_A,LSUBMODEL)
5148 NUMPRELOAD = NPRELOAD
5149 IF(NPRELOAD > NPRELOAD_A) THEN
5151 CALL PRELECSEC4BOLT(SNSTRF,SSECBUF,IGRNOD,ITABM1,0,
5152 . NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC,LSUBMODEL)
5153 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
5154 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
5157 CALL LECSEC4BOLT(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
5158 2 IXTG ,X ,NSTRF ,ITAB ,ITABM1 ,
5160 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
5161 5 ISKWN ,XFRAME ,EANI,NOM_SECT,RTRANS,
5162 6 LSUBMODEL,NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC)
5164 CALL HM_PRE_READ_PRELOAD(NSTRF,LSUBMODEL) !to calculate NUMPRELOAD = NUMPRELOAD + NN (NN = NSTRF(K0+7) = NSEGS)
5165 SIPRELOAD = 3*NUMPRELOAD !! sb - A ajuster
5166 SPRELOAD = 6*NUMPRELOAD !! sb - A ajuster
5167 ALLOCATE(IPRELOAD(SIPRELOAD) ,STAT=stat)
5168 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5171 ALLOCATE(PRELOAD(SPRELOAD) ,STAT=stat)
5172 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5175 ALLOCATE(IFLAG_BPRELOAD(NUMELS) ,STAT=stat)
5176 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5177 . MSGTYPE= MSGERROR,
5179 ALLOCATE(IPRELOAD_FUN(2*NUMPRELOAD) ,STAT=stat)
5180 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5182 . C1='ipreload_fun
')
5188 WRITE(ISTDO,'(a)
')TITRE(34)
5189 CALL HM_READ_PRELOAD(IXS ,IXS10 ,IPRELOAD ,PRELOAD,IFLAG_BPRELOAD,
5190 . NSTRF ,SENSORS ,UNITAB ,X ,
5191 . EANI ,ITAB ,LSUBMODEL,
5192 . SNPC ,NPC ,IPRELOAD_FUN)
5194 IF(ALLOCATED(NSTRF)) DEALLOCATE(NSTRF)
5195 IF(ALLOCATED(SECBUF)) DEALLOCATE(SECBUF)
5199 ALLOCATE(IPRELOAD(0) ,STAT=stat)
5200 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5203 ALLOCATE(PRELOAD(0) ,STAT=stat)
5204 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5207 ALLOCATE(IFLAG_BPRELOAD(0) ,STAT=stat)
5208 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5209 . MSGTYPE= MSGERROR,
5211 ALLOCATE(IPRELOAD_FUN(0))
5213! /PRELOAD/AXIAL 2 int 2 real per preload, itag_spring...
5214 ALLOCATE(PRELOAD_A(NPRELOAD_A) ,STAT=stat)
5215 ALLOCATE(ITAGPRLD_SPRING(NUMELR) ,STAT=stat)
5216 ALLOCATE(ITAGPRLD_BEAM(NUMELP) ,STAT=stat)
5217 ALLOCATE(ITAGPRLD_TRUSS(NUMELT) ,STAT=stat)
5218 IF(STAT /= 0) CALL ANCMSG(MSGID= 268,ANMODE=ANINFO,
5219 . MSGTYPE= MSGERROR,
5220 . C1= 'preload_axial
')
5221! itagprld_spring(nsprint), itagpre_beam(nbeam) : id of preload/axial; used for element grouping
5225 IF (NPRELOAD_A > 0) THEN
5226 CALL HM_READ_PRELOAD_AXIAL(
5227 . NPRELOAD_A, NGRSPRI, IGRSPRING, ITAGPRLD_SPRING,
5228 . UNITAB , LSUBMODEL, PRELOAD_A, NUMELR ,
5229 . SNPC , NPC , NFUNCT , SENSORS ,
5230 . NGRBEAM , IGRBEAM , NUMELP , ITAGPRLD_BEAM ,
5231 . NGRTRUS , IGRTRUSS , NUMELT , ITAGPRLD_TRUSS ,
5233 NPRELOAD = NPRELOAD - NPRELOAD_A
5239 ERR_MSG='rigid links
'
5240 ERR_CATEGORY='rigid links
'
5241 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5242 CALL HM_PRE_READ_LINK(NUMLINK, IGRNOD,LSUBMODEL)
5245 ALLOCATE(NNLINK(SNNLINK) ,STAT=stat)
5246 ALLOCATE(LNLINK(SLNLINK) ,STAT=stat)
5247 IF(SNNLINK > 0) NNLINK = 0
5248 IF(SLNLINK > 0) LNLINK = 0
5251 1 NNLINK ,LNLINK ,ITAB ,ITABM1 ,D ,
5252 2 IGRNOD ,ISKWN ,IFRAME ,NOM_OPT(LNOPT1*INOM_OPT(9)+1),LSUBMODEL)
5256 SGRAV = LFACGRV*NGRAV
5257 SFR_WAVE = NUMNOD*IFRWV
5259 ALLOCATE(FBVEL(SFBVEL) ,STAT=stat)
5260 ALLOCATE(GRAV (SGRAV ) ,STAT=stat)
5261 ALLOCATE(FR_WAVE(SFR_WAVE) ,STAT=stat)
5262 ALLOCATE(PARTS0(SPARTS0) ,STAT=stat)
5263 IF(SFBVEL > 0) FBVEL = ZERO
5264 IF(SGRAV > 0) GRAV = ZERO
5265 IF(SFR_WAVE > 0) FR_WAVE = ZERO
5266 IF(SPARTS0 > 0) PARTS0 = ZERO
5272 CALL PRELEC_DDW(FILNAM,LEN_FILNAM,MARQUEUR3)
5274 WRITE(IOUT,'(a)
')' '
5276 . ' --------------------------------------
'
5278 . ' ddw option
for the domain decomposition
'
5280 . ' --------------------------------------
'
5282 . '.. ddw option
for the domain decomposition
'
5284 ALLOCATE(TAB_UMP_OLD(7,TAILLE_OLD),STAT=stat)
5285 ALLOCATE(CPUTIME_MP_OLD(TAILLE_OLD),STAT=stat)
5287 CPUTIME_MP_OLD = ZERO
5289 CALL LEC_DDW(FILNAM,LEN_FILNAM,TAB_UMP_OLD,CPUTIME_MP_OLD)
5291 CALL PRELEC_DDW_POIN(FILNAM,LEN_FILNAM)
5292 ALLOCATE(POIN_UMP_OLD(NUMMAT_OLD), STAT=stat)
5295 CALL LEC_DDW_POIN(FILNAM,LEN_FILNAM,POIN_UMP_OLD)
5297 ALLOCATE(TAB_UMP_OLD(0,0),STAT=stat)
5298 ALLOCATE(CPUTIME_MP_OLD(0),STAT=stat)
5299 ALLOCATE(POIN_UMP_OLD(0), STAT=stat)
5304 ERR_MSG='user windows
'
5305 ERR_CATEGORY='user windows
'
5306 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5308 IF(USER_WINDOWS%HAS_USER_WINDOW /= 0 ) THEN
5311 CALL HM_READ_WINDOW_USER(USER_WINDOWS,LSUBMODEL,ITAB,
5320 ERR_MSG='rigid bodies on
'
5321 ERR_CATEGORY='rigid bodies
'
5322 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5323 IF(NUMELS /=0) ISOLOFF = 0
5324 IF(NUMELC /=0) ISHEOFF = 0
5325 IF(NUMELT /=0) ITRUOFF = 0
5326 IF(NUMELP /=0) IPOUOFF = 0
5327 IF(NUMELR /=0) IRESOFF = 0
5328 IF(NUMELTG /=0) ITRIOFF = 0
5329 IF(NUMELQ /=0) IQUAOFF = 0
5331 1 IXS ,IXC ,IXTG ,IGRNOD ,IGRNRBY ,
5332 2 ISOLOFF ,ISHEOFF ,ITRIOFF,KNOD2ELS,KNOD2ELC,
5333 5 KNOD2ELTG,NOD2ELS ,NOD2ELC,NOD2ELTG,IXQ ,
5334 6 IQUAOFF ,KNOD2ELQ,NOD2ELQ,LSUBMODEL)
5341 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5343 1 IXS ,IXC ,IXTG ,IGRNOD ,
5344 2 IGRNRB2,ISOLOFF,ISHEOFF,ITRIOFF,ITABM1,
5350 ERR_MSG='flexible bodies on
'
5351 ERR_CATEGORY='flexible bodies
'
5352 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5355 CALL HM_SETFXRBYON(ITABM1,IXS,ISOLOFF,IXC,ISHEOFF,
5356 1 IXT,ITRUOFF,IXP,IPOUOFF,IXR,IRESOFF,
5357 2 IXTG,ITRIOFF,FXBIPM,LSUBMODEL)
5364 ERR_CATEGORY='clusters
'
5365 ALLOCATE(CLUSTERS(NCLUSTER), STAT=Stat)
5366 CALL HM_READ_CLUSTER(
5367 . CLUSTERS ,UNITAB ,ISKWN ,IGRBRIC ,IGRSPRING,
5368 . IXS ,IXR ,NOM_OPT(LNOPT1*INOM_OPT(28)+1),
5373 CALL HM_READ_INIVOL(INIVOL, KVOL, IGRSURF ,IPART, MULTI_FVM, BUFMAT,
5374 * IPM, NBSUBMAT, LSUBMODEL, UNITAB,
5375 * N2D ,NUMELTG,NUMELS,NUMELQ,NUMMAT,
5376 * NPART,NSURF,LIPART1,NPROPMI,SIPART,SINIVOL,
5377 * NSUBDOM,SBUFMAT,IGRNOD,NGRNOD)
5381 IF(TAGSURFIGE>0) THEN
5383 NIGE => NIGE_TMP(IDXIGE2)%ptr
5386 RIGE => RIGE_TMP(IDXIGE2)%ptr2
5389 XIGE => XIGE_TMP(IDXIGE2)%ptr2
5392 VIGE => VIGE_TMP(IDXIGE2)%ptr2
5400 CALL CHECK_SURF(IGRSURF)
5404 ERR_MSG='monitored volumes
'
5405 ERR_CATEGORY='monitored volumes
'
5406 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5411 ALLOCATE(T_MONVOL(NVOLU + NMONVOL))
5412 CALL MONVOL_ALLOCATE(NVOLU + NMONVOL, T_MONVOL, T_MONVOL_METADATA)
5413 IF(NVOLU + NMONVOL> 0) THEN
5414 WRITE(ISTDO,'(a)
') ' .. monitored volumes
'
5416 CALL READ_MONVOL(T_MONVOL, T_MONVOL_METADATA, ITAB, ITABM1, IPM, IGEO,
5417 . X, PM, GEO, IXC, IXTG, SENSORS,
5418 . UNITAB, NPC1, NPC, TF, IGRSURF, IGRBRIC, NOM_OPT(LNOPT1*INOM_OPT(2)+1),IFRAME, XFRAME,
5421 CALL INIT_MONVOL(T_MONVOL, T_MONVOL_METADATA,
5422 3 IXC , IXTG ,X ,NPC1 ,
5424 5 SENSORS , IGRBRIC ,SBUFALE ,
5425 6 IXS , V ,LIBAGALE,
5433 LICBAG = NICBAG * NVOLU * NVOLU
5435 LIBAGJET = LIBAGJET + NIBJET * T_MONVOL(II)%NJET
5436 LRBAGJET = LRBAGJET + NRBJET * T_MONVOL(II)%NJET
5437 LIBAGHOL = LIBAGHOL + NIBHOL * T_MONVOL(II)%NVENT
5438 LRBAGHOL = LRBAGHOL + NRBHOL * T_MONVOL(II)%NVENT
5439.OR.
IF(T_MONVOL(II)%TYPE == 5 T_MONVOL(II)%TYPE == 9) THEN
5440 LRCBAG = LRCBAG + T_MONVOL(II)%NCA * NRCBAG
5444 SVOLMON0 = NRVOLU * NVOLU + LRCBAG + LRBAGJET + LRBAGHOL
5445 SVOLMON = SVOLMON0 + SBUFALE + 1
5446 ALLOCATE(VOLMON(SVOLMON), STAT = stat)
5447 VOLMON(1:SVOLMON) = ZERO
5449 SMONVOL = NIMV * NVOLU + LICBAG + LIBAGJET + LIBAGHOL + LIBAGALE
5450 ALLOCATE(MONVOL(SMONVOL), STAT = stat)
5451 MONVOL(1:SMONVOL) = 0
5460 ERR_MSG='IMPLICIT domain decomposition
'
5461 ERR_CATEGORY='IMPLICIT domain decomposition
'
5462 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5464 1 DSDOF,IXS , IXQ, IXC , IXT,
5465 2 IXP ,IXR , IXTG, KXX,
5482 IWCONT(NUMNOD+I) = 0
5488 IENTRY2(I) = IFRONT%IENTRY(I)
5525.AND..OR.
IF(NDRAPE > 0 (IPART_STACK > 0 IPART_PCOMPP > 0)) THEN
5526 CALL SHELLTHK_UPD(DRAPE ,STACK ,THKE ,IXC ,IXTG ,
5527 . IGEO ,IWORKSH ,DRAPEG%INDX)
5533 ERR_CATEGORY='perturb
'
5534 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5536 IF(IPERTURB /= 0) THEN
5538 SRNOISE2=NUMELC+NUMELTG+NUMELS+NUMSPH
5539 ALLOCATE(RNOISE(NPERTURB,NUMELC+NUMELTG+NUMELS+NUMSPH))
5540 RNOISE(1:NPERTURB,1:NUMELC+NUMELTG+NUMELS+NUMSPH) = ZERO
5541 ALLOCATE(PERTURB(NPERTURB))
5542 PERTURB(1:NPERTURB) = 0
5543 ALLOCATE(QP_IPERTURB(NPERTURB,6))
5544 QP_IPERTURB(1:NPERTURB,1:6) = 0
5545 ALLOCATE(QP_RPERTURB(NPERTURB,4))
5546 QP_RPERTURB(1:NPERTURB,1:4) = ZERO
5547 CALL HM_READ_PERTURB(MAT_ELEM%MAT_PARAM,
5548 . IPART ,RNOISE ,IPARTC ,IPARTG ,IPARTSP ,
5549 . IGRPART ,IPM ,IPARTS ,PERTURB ,QP_IPERTURB,
5550 . QP_RPERTURB ,LSUBMODEL,UNITAB )
5554 ALLOCATE(RNOISE(1,1))
5556 ALLOCATE(PERTURB(1))
5558 ALLOCATE(QP_IPERTURB(0,0))
5559 ALLOCATE(QP_RPERTURB(0,0))
5567 CALL GLOBMAT(IGEO , GEO ,PM ,STACK%PM, STACK%GEO,STACK%IGEO,
5568 . MAT_ELEM%MAT_PARAM)
5575 ALLOCATE(PERMUTATION%SOLID(MAX(2*NUMELS,1)))
5576 ALLOCATE(PERMUTATION%SHELL(MAX(2*NUMELC,1)))
5577 ALLOCATE(PERMUTATION%TRIANGLE(MAX(2*NUMELTG,1)))
5578 PERMUTATION%TRIANGLE = 0
5579 PERMUTATION%SHELL = 0
5580 PERMUTATION%SOLID = 0
5585 ERR_MSG='user to system renumbering
'
5586 ERR_CATEGORY='internal
'
5587 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5588 CALL FSDCOD(PYTHON, BUFMAT ,PM ,GEO ,IBCL ,IPRES ,
5589 . IBFV ,ISKEW ,ISKWN ,SENSORS ,MAT_ELEM%MAT_PARAM ,
5590 . ITABM1 ,SKEW ,LACCELM ,BID13 ,BUFGEO ,
5591 . IBCSLAG ,IGEO ,IPM ,
5592 . IBFTEMP ,IBCV ,IBFV ,
5593 . IBCR ,TABLE ,NPC1 ,NPC ,TF ,
5594 . NOM_OPT(LNOPT1*INOM_OPT(3)+1),IBFFLUX ,GLOB_THERM,NIMPVEL,NIMPDISP,
5600 CALL UPDMAT(BUFMAT ,PM ,IPM ,TABLE ,NPC1 ,
5601 . NPC ,TF ,SENSORS ,NLOC_DMG ,MLAW_TAG ,
5602 . MAT_ELEM%MAT_PARAM)
5604 CALL UPDFAIL(MAT_ELEM%MAT_PARAM ,NUMMAT ,NFUNCT ,NTABLE ,NPC1 ,TABLE ,
5605 . FAIL_FRACTAL,NGRSHEL ,NGRSH3N,IGRSH4N ,IGRSH3N ,
5606 . NIXC ,IXC ,NIXTG ,IXTG ,NUMELC ,NUMELTG ,
5607 . IWORKSH ,STACK ,IGEO ,NPROPGI ,NUMGEO ,FAIL_BROKMANN)
5614 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5616 . CALL SPHDCOD(NPC1,ISPHIO,NOM_OPT(LNOPT1*INOM_OPT(22)+1))
5629 CALL INIT_PERMUTATION()
5631 IF(IDDLEVEL==1) THEN
5638 IF((NSUBDOM>0)) THEN
5641 IF(TAGNO(I+N_PART) > 1) THEN
5643 IF(IRODDL==1) IN(I)=1e-20
5655 IF(NB_MAT_SEATBELT > 0) THEN
5657 ERR_CATEGORY='seatbelts
'
5658 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5659 WRITE(ISTDO,'(a)
')' .. seatbelt initialization
'
5660 CALL CREATE_SEATBELT(IXR,ITAB,KNOD2EL1D,NOD2EL1D,IPM,
5661 . X,SENSORS,BUFMAT,PM,GEO,
5662 . IDDLEVEL,KNOD2ELC,NOD2ELC,IXC,IGEO,
5674 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5675 IF(NDAMP > 0) CALL HM_READ_DAMP(DAMPR,IGRNOD,ISKWN,LSUBMODEL,UNITAB,
5676 . SNPC1,NPC1,NDAMP_VREL_RBY,IGRPART,DAMP_RANGE_PART)
5684.NOT.
IF( ALLOCATED(TAGPRT_SMS)) THEN
5685 ALLOCATE(TAGPRT_SMS(0))
5686 ALLOCATE(NATIV_SMS(0))
5687 ALLOCATE(T2MAIN_SMS(4,0))
5692 WRITE(ISTDO,'(a)
')' .. ams initialization
'
5693 IF(IDDLEVEL==0) THEN
5695 ERR_MSG='ams initialization phase i
'
5696 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5698 ALLOCATE(TAGPRT_SMS(NPART),NATIV_SMS(NUMNOD),T2MAIN_SMS(4,NUMNOD),STAT=stat)
5700 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5704 NATIV_SMS(1:NUMNOD)=0
5707 CALL INISMS(IGRPART ,IPARTS ,IPARTQ ,IPARTC ,
5708 . IPARTT ,IPARTP ,IPARTR ,IPARTG ,
5709 . IPARTX ,TAGPRT_SMS )
5717 ERR_MSG='ams initialization phase ii
'
5718 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5720 ALLOCATE(KINWORK(NUMNOD),STAT=STAT)
5721 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5724 CALL KINREM(D ,KINWORK ,RWBUF ,ITAB ,NPRW ,
5725 . LPRW ,NPBY ,LPBY )
5727 ALLOCATE(TAGREL_SMS(NGROUP),TAGSLV_RBY_SMS(NUMNOD),TAGMSR_RBY_SMS(NUMNOD),
5728 . KAD_SMS(NUMNOD+1), JAD_SMS(NUMNOD+1), IAD_SMS(NUMNOD+1), LAD_SMS(NUMNOD+1),
5729 . JADC_SMS(4*NUMELC),
5730 . JADS_SMS(8*NUMELS), JADS10_SMS(6*NUMELS10),
5731 . JADT_SMS(2*NUMELT),
5732 . JADP_SMS(2*NUMELP),
5733 . JADR_SMS(3*NUMELR),
5734 . JADTG_SMS(3*NUMELTG), JADRB_SMS(NRBODY),
5736 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5742 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5743 2 IXR ,IXTG ,IXTG1 ,IXS10 ,IXS16 ,
5744 3 IXS20 ,IPARG ,DSDOF ,
5745 4 ICODT ,ICODR ,KINWORK ,
5746 5 IPARTS ,IPARTQ ,IPARTC ,
5747 6 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
5748 7 IPARTX ,TAGPRT_SMS ,ITAB ,IRBE2 ,
5749 8 IRBE3 ,LRBE2 ,LRBE3 ,NPRW ,LPRW ,
5750 9 IPART ,IGEO ,IPM ,NATIV_SMS,NPBY ,
5751 A LPBY ,TAGMSR_RBY_SMS,TAGSLV_RBY_SMS,NOM_OPT)
5754 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5755 2 IXR ,IXTG ,IXTG1 ,IXS10 ,IXS16 ,
5756 3 IXS20 ,IPARG ,MS ,MS0 ,DSDOF ,
5757 4 ICODT ,ICODR ,KINET ,
5758 5 KAD_SMS ,IPARTS ,IPARTQ ,
5759 6 IPARTC ,IPARTT ,IPARTP ,IPARTR ,
5760 7 IPARTG ,IPARTX ,TAGPRT_SMS,TAGREL_SMS,ITAB ,
5761 8 IRBE2 ,IRBE3 ,LRBE2 ,LRBE3 ,
5762 9 NPRW ,LPRW ,IPART ,IGEO ,NATIV_SMS)
5765 ALLOCATE(KDI_SMS(KNZ_SMS),PK_SMS(KNZ_SMS),
5767 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5772 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5773 3 IXR ,IXTG ,IXS10 ,DSDOF ,KAD_SMS ,
5774 4 KDI_SMS ,JADC_SMS,JADS_SMS ,JADS10_SMS ,
5775 5 JADT_SMS ,JADP_SMS,
5776 6 JADR_SMS,JADTG_SMS,TAGPRT_SMS,IAD_SMS ,
5777 7 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5778 8 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5779 9 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5780 A INTBUF_TAB,LAD_SMS ,IPART ,IGEO ,NATIV_SMS)
5782 ALLOCATE(IDI_SMS(NNZ_SMS),JDI_SMS(NNZ_SMS),STAT=STAT)
5783 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5788 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5789 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS ,
5790 4 JADS_SMS ,JADS10_SMS,JADT_SMS ,JADP_SMS,JADR_SMS ,
5791 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS,KDI_SMS ,PK_SMS ,
5792 6 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5793 7 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5794 8 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5795 9 INTBUF_TAB,LAD_SMS ,IPART ,IGEO ,NATIV_SMS ,
5796 A IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,T2MAIN_SMS)
5800 ALLOCATE(JDI_SMS(NNZ_SMS),STAT=STAT)
5802 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5809 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5810 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS ,
5811 4 JADS_SMS ,JADS10_SMS,JADT_SMS,JADP_SMS,JADR_SMS ,
5812 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS,KDI_SMS ,
5813 7 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5814 8 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5815 9 NPBY ,LPBY ,KINET ,TAGSLV_RBY_SMS,IPARI ,
5816 A INTBUF_TAB,LAD_SMS ,NPRW ,LPRW ,TAGMSR_RBY_SMS,
5817 C INTSTAMP ,IPART ,IGEO ,NATIV_SMS,IRBE2 ,
5818 D LRBE2 ,IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,
5823 ALLOCATE(JDI_SMS(NNZ_SMS),STAT=STAT)
5825 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5830 ALLOCATE(JSM_SMS(NNZ_SMS),STAT=STAT)
5832 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5839 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
5840 3 IXR ,IXTG ,IXS10 ,DSDOF ,JADC_SMS,
5841 4 JADS_SMS ,JADS10_SMS,JADT_SMS ,JADP_SMS,JADR_SMS ,
5842 5 JADTG_SMS,TAGPRT_SMS,KAD_SMS ,KDI_SMS ,
5843 6 TAGREL_SMS,IPARTS ,IPARTQ ,IPARTC ,IPARTT ,
5844 7 IPARTP ,IPARTR ,IPARTG ,IPARTX ,
5845 8 NPBY ,LPBY ,KINET ,
5846 9 TAGSLV_RBY_SMS,IPARI ,INTBUF_TAB,
5847 A LAD_SMS ,JSM_SMS ,INTSTAMP ,IPART ,
5848 B IGEO ,TAGMSR_RBY_SMS,NATIV_SMS,
5849 C IAD_SMS ,IDI_SMS,JAD_SMS ,JDI_SMS ,T2MAIN_SMS)
5852 DEALLOCATE(T2MAIN_SMS)
5856.AND.
IF((ISMS_SELEC >= 2)(NNZ_SMS == 0)) ISMS_SELEC = 0
5862 NELEM = NUMELC+NUMELTG+NUMELS+NUMELR
5863 + + NUMELP+NUMELT+NUMELQ+NUMELX+NUMELIG3D
5866 ALLOCATE(IELEM21(NELEM),STAT=stat)
5867 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5872 ERR_MSG='domain decomposition
'
5873 ERR_CATEGORY='domain decomposition
'
5874 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
5875 IF(IDDLEVEL==1) THEN
5884 IF(IENTRY2(I)/=-1)THEN
5885 CALL IFRONTPLUS(I,1)
5891 ELSEIF(IDDLEVEL==0) THEN
5892 IF(NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLCFIELD>0) THEN
5893 SCEP = NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLLOADP+NUMBER_LOAD_CYL
5894 SCEL = NELEM+NCONLD+GLOB_THERM%NUMCONV+GLOB_THERM%NUMRADIA+GLOB_THERM%NFXFLUX+SLLOADP+NUMBER_LOAD_CYL
5904 EMAX = MAX(NUMELC,NUMELTG,NUMELS,NUMELR,
5905 . NUMELP,NUMELT,NUMELQ,NUMELX,NUMELIG3D)
5915 LDD_IAD = ((NELEM+NUMSPH)/NVSIZ/2)*(NSPMD+1)
5916 ALLOCATE(DD_TMP(LDD_IAD) ,STAT=stat)
5920 ALLOCATE(IWORK(K8) ,STAT=stat)
5922 ITRI1 => IWORK(1:K2)
5923 ITRI2 => IWORK(K2+1:K3)
5924 INDEX1 => IWORK(K3+1:K4)
5925 INDEX2 => IWORK(K4+1:K5)
5933 INUM => IWORK(K5+1:K6)
5934 IWD => IWORK(K6+1:K7)
5935 IWEIG => IWORK(K7+1:K8)
5942.NOT.
IF(ALLOCATED(INTER_CAND%IXINT)) ALLOCATE(INTER_CAND%IXINT(INTER_CAND%S_IXINT_1,INTER_CAND%S_IXINT_2))
5943.NOT.
IF( ALLOCATED(NPBY)) ALLOCATE(NPBY(0))
5944.NOT.
IF( ALLOCATED(LPBY)) ALLOCATE(LPBY(0))
5945.NOT.
IF( ALLOCATED( RBY)) ALLOCATE( RBY(0))
5948 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
5949 2 IXR ,IXTG ,CEP ,GEO ,
5950 3 ITRI1 ,ITRI2 ,INDEX1 ,INDEX2 ,INUM ,
5951 4 IWD ,IWCONT ,NELEM ,IDDLEVEL,NELEMINT ,
5952 5 INTER_CAND,PM ,X ,KXX ,IXX ,
5953 6 ADDCNE ,IGEO ,EANI ,IWCIN2 ,DSDOF ,
5954 7 ISOLOFF ,ISHEOFF ,ITRIOFF ,ITRUOFF ,IPOUOFF ,
5955 8 IRESOFF ,IELEM21 ,IPM ,IXS10 ,D ,
5956 9 CLUSTERS ,KXIG3D ,IXIG3D ,COST_R2R,BUFMAT,
5957 1 TAILLE ,POIN_UMP,TAB_UMP ,
5958 2 POIN_UMP_OLD,TAB_UMP_OLD,CPUTIME_MP_OLD,
5959 3 NSNT, NMNT_2,TABMP_L,IQUAOFF,
5961 5 ITAB ,IPART ,IPARTC ,IPARTG ,IPARTS,
5962 6 POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,
5963 7 MID_PID_SHELL,MID_PID_TRI,MID_PID_SOL,T_MONVOL,
5964 8 EBCS_TAG_CELL_SPMD,NPBY,LPBY,MAT_ELEM%MAT_PARAM)
5971 IF(IDDLEVEL==0) THEN
5972 ALLOCATE(CEPSP(NUMSPH),STAT=stat)
5973 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5977 ALLOCATE(CELSPH(NUMSPH),STAT=stat)
5978 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
5983 CALL SPDOMETIS(KXSP, IXSP, NOD2SP, CEPSP, RESERVEP,
5986 IF(IDDLEVEL==0) ALLOCATE(CELSPH(1))
5987.NOT.
IF((ALLOCATED(CEPSP))) ALLOCATE(CEPSP(0),STAT=stat)
5993 CALL LASERP1(ILAS ,CEP,IXQ )
6000 ERR_MSG='elements groups
'
6001 ERR_CATEGORY='elem/prop/mat compatibility
'
6002 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6012 NUMELIG3DK8 = NUMELIG3D
6014! working int8 to avoid integer overflow for large models
6015 EMAX = MAX(24*NUMELCK8,25*NUMELTGK8+1,30*NUMELSK8+1,19*NUMELRK8,
6016 . 19*NUMELPK8+1,17*NUMELTK8,19*NUMELQK8,
6017 . 15*NUMELXK8+1,24*NUMELIG3DK8+1,NUMSPHK8) + 1
6019 ALLOCATE(IPARGTMP(NPARG,NUMEL) ,STAT=stat)
6021 ALLOCATE(IWORK(EMAX) ,STAT=stat)
6023 CALL ANCMSG(MSGID=727,
6029 IF(IDDLEVEL == 0) CALL M20DCOD(MLAW_TAG,IPM, PM, MAT_ELEM%MAT_PARAM)
6037 WRITE(ISTDO,'(a)
')TITRE(37)
6051 !warning: please also update any index change
6052 ! for MODIF option (MODIF_SPMD.F)
6055 ITRI1 => IWORK(K1+1:K2)
6056 EADD => IWORK(K2+1:K3)
6057 INDEX1 => IWORK(K3+1:K4)
6058 ITRI2 => IWORK(K4+1:K5)
6059 ITRI3 => IWORK(K5+1:K6)
6063 1 IXS ,PM ,GEO ,INUM ,BID13 ,
6064 2 ITRI1 ,EADD ,INDEX1 ,ITRI2 ,IPARTS ,
6065 3 ND ,IGRSURF,IGRBRIC,EANI ,
6066 4 CEP(OFF),ITRI3 ,IXS10 ,IXS20 ,IXS16 ,
6067 5 IGEO ,IPM ,NOD2ELS,ISOLOFF ,
6068 6 TAGPRT_SMS,SPH2SOL,SOL2SPH,MAT_ELEM%MAT_PARAM,
6069 7 SOL2SPH_TYP ,IFLAG_BPRELOAD, CLUSTERS ,
6070 8 RNOISE(1,MIN(SRNOISE2,NUMELC+NUMELTG+1)),
6071 9 DAMP_RANGE_PART,TRIMAT)
6076 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6077 ALLOCATE(DD_TMP2(IDX-1))
6079 DD_TMP2(I)=DD_TMP(I)
6082 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6084 DD_TMP(I)=DD_TMP2(I)
6091 1 IXS ,PM ,IPARGTMP ,GEO ,
6092 2 EADD ,ND ,IPARTS ,DD_TMP(IDX),
6093 3 IDX ,EANI ,INUM ,INDEX1 ,
6094 4 CEP(OFF) ,ITRI1 ,IXS10 ,IGRSURF ,IGRBRIC ,
6095 5 IXS20 ,IXS16 ,IGEO ,IDDLEVEL,
6096 6 IPM ,NOD2ELS ,ISOLOFF ,ISOLNOD ,
6097 7 TAGPRT_SMS,INIVOL ,SPH2SOL ,SOL2SPH ,SOL2SPH_TYP,
6098 8 IFLAG_BPRELOAD, CLUSTERS ,MAT_ELEM%MAT_PARAM ,RNOISE(1,MIN(SRNOISE2,NUMELC+NUMELTG+1)),
6099 9 IPRI ,DAMP_RANGE_PART,IPRELOAD_FUN)
6101 NGR_SOL = GRSOL_ID2 - GRSOL_ID1
6106 N=PERMUTATION%SOLID(I)
6107 PERMUTATION%SOLID(NUMELS+N)=I
6109! already done in SGRHEAD / SGRTAILS
6110! CALL APPLYSORT2CLUSTER(CLUSTERS,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6111 CALL APPLYSORT2FLUX(IBFFLUX,GLOB_THERM%NITFLUX,GLOB_THERM%NFXFLUX,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6112 CALL APPLYSORT2FLUX(IBCR,GLOB_THERM%NIRADIA,GLOB_THERM%NUMRADIA,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6113 CALL APPLYSORT2FLUX(IBCV,GLOB_THERM%NICONV,GLOB_THERM%NUMCONV,PERMUTATION%SOLID(NUMELS+1:2*NUMELS))
6126 !warning: please also update any index change
6127 ! for MODIF option (MODIF_SPMD.F)
6130 ITR1 => IWORK(K1+1:K2)
6131 EADD => IWORK(K2+1:K3)
6132 INDEX1 => IWORK(K3+1:K4)
6133 ITRI1 => IWORK(K4+1:K5)
6134 XEP => IWORK(K5+1:K6)
6137 1 IXQ ,PM ,GEO ,INUM ,BID13 ,
6138 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,IPARTQ ,
6139 4 ND ,IGRSURF ,IGRQUAD ,CEP(OFF) ,MAT_ELEM%MAT_PARAM,
6140 5 XEP ,IGEO ,IPM ,IQUAOFF ,TRIMAT)
6145 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6146 ALLOCATE(DD_TMP2(IDX-1))
6148 DD_TMP2(I)=DD_TMP(I)
6151 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6153 DD_TMP(I)=DD_TMP2(I)
6159 1 IXQ ,PM ,IPARGTMP ,GEO ,
6160 2 EADD ,ND ,DD_TMP(IDX),IDX ,
6161 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTQ ,
6162 4 ITR1 ,IGRSURF ,IGRQUAD ,MAT_ELEM%MAT_PARAM,
6163 5 IGEO ,IPM ,IQUAOFF ,INIVOL, IPRI)
6181 !warning: please also update any index change
6182 ! for MODIF option (MODIF_SPMD.F)
6185 ITR1 => IWORK(K1+1:K1+NUMELC)
6186 ITR2 => IWORK(K1+NUMELC+1:K2)
6187 EADD => IWORK(K2+1:K3)
6188 INDEX1 => IWORK(K3+1:K4)
6189 ITRI1 => IWORK(K4+1:K5)
6190 XEP => IWORK(K5+1:K6)
6191 ALLOCATE(XNUM(NUMELC) ,STAT=stat)
6195 1 IXC ,PM ,GEO ,INUM ,BID13 ,
6196 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6197 3 IPARTC ,ND ,THKE ,IGRSURF ,IGRSH4N ,
6198 4 CEP(OFF),XEP ,IGEO ,IPM ,
6199 5 IPART ,SH4TREE ,NOD2ELC ,ISHEOFF ,SH4TRIM ,
6200 6 TAGPRT_SMS,LGAUGE,IWORKSH ,MAT_ELEM%MAT_PARAM,
6201 7 STACK ,DRAPE ,RNOISE ,SH4ANG,DRAPEG, PTSHEL,
6208 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6209 ALLOCATE(DD_TMP2(IDX-1))
6211 DD_TMP2(I)=DD_TMP(I)
6214 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6216 DD_TMP(I)=DD_TMP2(I)
6223 1 IXC ,PM ,IPARGTMP ,GEO ,
6224 2 EADD ,ND ,IPARTC ,DD_TMP ,
6226 4 INDEX1 ,CEP(OFF) ,THKE ,XNUM ,
6227 5 IGRSURF ,IGRSH4N ,IGEO ,IPM ,
6228 6 IPART ,SH4TREE ,NOD2ELC ,ISHEOFF ,
6229 7 SH4TRIM ,TAGPRT_SMS, LGAUGE,IWORKSH ,
6230 8 STACK ,DRAPE ,RNOISE ,MAT_ELEM%MAT_PARAM,
6231 9 SH4ANG, IDDLEVEL , DRAPEG,IPRI, PTSHEL,DAMP_RANGE_PART)
6236 N=PERMUTATION%SHELL(I)
6237 PERMUTATION%SHELL(NUMELC+N)=I
6250 !warning: please also update any index change
6251 ! for MODIF option (MODIF_SPMD.F)
6254 ITR1 => IWORK(K1+1:K2)
6255 EADD => IWORK(K2+1:K3)
6256 INDEX1 => IWORK(K3+1:K4)
6257 ITRI1 => IWORK(K4+1:K5)
6258 XEP => IWORK(K5+1:K6)
6261 1 IXT ,PM ,GEO ,INUM ,BID13 ,
6262 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,
6263 3 IPARTT ,ND ,IGRSURF,IGRTRUSS,
6264 4 CEP(OFF),XEP ,ITRUOFF,
6265 5 TAGPRT_SMS,ITAGPRLD_TRUSS)
6270 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6271 ALLOCATE(DD_TMP2(IDX-1))
6273 DD_TMP2(I)=DD_TMP(I)
6276 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6278 DD_TMP(I)=DD_TMP2(I)
6284 1 IXT ,IPARGTMP,PM ,GEO ,
6285 2 EADD ,ND ,DD_TMP ,IDX ,
6286 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTT ,
6287 4 ITR1 ,IGRSURF ,IGRTRUSS ,ITRUOFF ,
6288 5 TAGPRT_SMS,NOD2EL1D,IPRI,ITAGPRLD_TRUSS,
6289 6 PRELOAD_A,NPRELOAD_A)
6301 !warning: please also update any index change
6302 ! for MODIF option (MODIF_SPMD.F)
6305 ITR1 => IWORK(K1+1:K2)
6306 EADD => IWORK(K2+1:K3)
6307 INDEX1 => IWORK(K3+1:K4)
6308 ITRI1 => IWORK(K4+1:K5)
6309 XEP => IWORK(K5+1:K6)
6311 ALLOCATE(XNUM(3*NUMELP) ,STAT=stat)
6312 XNUM(1:3*NUMELP) = ZERO
6315 1 IXP ,PM ,GEO ,INUM ,
6316 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,IPARTP ,
6317 3 ND ,IGRSURF ,IGRBEAM ,CEP(OFF) ,
6318 4 XEP ,IGEO ,IPOUOFF ,TAGPRT_SMS , IPM ,
6319 5 ITAGPRLD_BEAM,IBEAM_VECTOR,RBEAM_VECTOR,XNUM)
6324 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6325 ALLOCATE(DD_TMP2(IDX-1))
6327 DD_TMP2(I)=DD_TMP(I)
6330 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6332 DD_TMP(I)=DD_TMP2(I)
6337 CALL PGRTAILS(MAT_ELEM%MAT_PARAM,
6338 1 IXP ,IPARGTMP,PM ,GEO ,
6339 2 EADD ,ND ,DD_TMP ,IDX ,
6340 3 INUM ,INDEX1 ,CEP(OFF) ,IPARTP ,
6341 4 ITR1 ,IGRSURF ,IGRBEAM ,IGEO ,
6342 5 IPM ,IPOUOFF ,TAGPRT_SMS,
6343 6 NOD2EL1D, IPRI ,ITAGPRLD_BEAM,PRELOAD_A,
6344 7 NPRELOAD_A,IBEAM_VECTOR,RBEAM_VECTOR,XNUM)
6360 !warning: please also update any index change
6361 ! for MODIF option (MODIF_SPMD.F)
6364 ITR1 => IWORK(K1+1:K2)
6365 EADD => IWORK(K2+1:K3)
6366 INDEX1 => IWORK(K3+1:K4)
6367 ITRI1 => IWORK(K4+1:K5)
6368 XEP => IWORK(K5+1:K6)
6371 1 IXR ,GEO ,INUM ,BID13 ,IGEO ,
6372 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,
6373 4 IPARTR ,ND ,IGRSURF,IGRSPRING,
6374 5 CEP(OFF),XEP ,IRESOFF,
6375 6 TAGPRT_SMS, CLUSTERS,IPM,R_SKEW,ITAGPRLD_SPRING)
6380 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6381 ALLOCATE(DD_TMP2(IDX-1))
6383 DD_TMP2(I)=DD_TMP(I)
6386 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6388 DD_TMP(I)=DD_TMP2(I)
6394 1 IXR ,IPARGTMP ,GEO ,EADD ,IGEO ,
6395 2 ND ,DD_TMP ,IDX ,INUM ,
6396 3 INDEX1 ,CEP(OFF) ,IPARTR ,ITR1 ,
6397 4 IGRSURF ,IGRSPRING ,IRESOFF ,TAGPRT_SMS ,NOD2EL1D,
6398 5 IPM , CLUSTERS,R_SKEW,IPRI ,ITAGPRLD_SPRING,
6399 6 PRELOAD_A,NPRELOAD_A)
6415 !warning: please also update any index change
6416 ! for MODIF option (MODIF_SPMD.F)
6419 ITR1 => IWORK(K1+1:K2)
6420 EADD => IWORK(K2+1:K3)
6421 INDEX1 => IWORK(K3+1:K4)
6422 ITRI1 => IWORK(K4+1:K5)
6423 XEP => IWORK(K5+1:K6)
6425 ALLOCATE(XNUM(NUMELTG) ,STAT=stat)
6429 CALL CDK6INX(IXTG ,IXTG1 ,EANIT )
6433 1 IXTG ,PM ,GEO ,INUM ,BID13 ,
6434 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6435 3 IPARTG ,ND ,THKEC ,IGRSURF ,IGRSH3N ,
6436 4 CEP(OFF),XEP ,IXTG1 ,EANIT ,
6437 5 IGEO ,IPM ,IPART ,SH3TREE ,NOD2ELTG,
6438 6 ITRIOFF ,SH3TRIM ,TAGPRT_SMS,
6439 7 IWORKSH , STACK ,DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)),
6440 8 MULTI_FVM , SH3ANG,DRAPEG,PTSH3N,MAT_ELEM%MAT_PARAM,
6444 1 IXTG ,PM ,GEO ,INUM ,BID13 ,
6445 2 ITR1 ,EADD ,INDEX1 ,ITRI1 ,XNUM ,
6446 3 IPARTG ,ND ,THKEC ,IGRSURF ,IGRSH3N ,
6447 4 CEP(OFF),XEP ,IXTG1 ,EANIT ,
6448 5 IGEO ,IPM ,IPART ,SH3TREE ,NOD2ELTG,
6449 6 ITRIOFF ,SH3TRIM ,TAGPRT_SMS,MAT_ELEM%MAT_PARAM,
6450 7 IWORKSH , STACK ,DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)),
6451 8 MULTI_FVM ,SH3ANG,DRAPEG,PTSH3N)
6457 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6458 ALLOCATE(DD_TMP2(IDX-1))
6460 DD_TMP2(I)=DD_TMP(I)
6463 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6465 DD_TMP(I)=DD_TMP2(I)
6472 1 IXTG ,PM ,IPARGTMP ,GEO ,
6473 2 EADD ,ND ,IPARTG ,DD_TMP ,
6474 3 IDX ,INUM ,INDEX1 ,CEP(OFF) ,
6475 4 THKEC ,XNUM ,ITR1 ,IGRSURF ,IGRSH3N ,
6476 5 EANIT ,IGEO ,IPM ,IXTG1 ,
6477 6 IPART ,SH3TREE ,NOD2ELTG ,ITRIOFF ,
6478 7 SH3TRIM ,TAGPRT_SMS,IWORKSH ,STACK ,
6479 8 DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)) ,
6480 9 MAT_ELEM%MAT_PARAM,SH3ANG,DRAPEG,IPRI ,PTSH3N,DAMP_RANGE_PART)
6483 1 IXTG ,PM ,IPARGTMP ,GEO ,
6484 2 EADD ,ND ,IPARTG ,DD_TMP ,
6485 3 IDX ,INUM ,INDEX1 ,CEP(OFF) ,
6486 4 THKEC ,XNUM ,ITR1 ,IGRSURF ,IGRSH3N ,
6487 5 EANIT ,IGEO ,IPM ,IXTG1 ,
6488 6 IPART ,SH3TREE ,NOD2ELTG ,ITRIOFF ,
6489 7 SH3TRIM ,TAGPRT_SMS,IWORKSH ,STACK ,
6490 8 DRAPE ,RNOISE(1,MIN(SRNOISE2,NUMELC+1)) ,INIVOL,
6491 9 MAT_ELEM%MAT_PARAM,SH3ANG ,DRAPEG,IPRI,PTSH3N)
6495 N=PERMUTATION%TRIANGLE(I)
6496 PERMUTATION%TRIANGLE(NUMELTG+N)=I
6502 CALL APPLYSORT2FVM(T_MONVOL)
6506.NOT.
if ( ALLOCATED(IXSPS) ) ALLOCATE(IXSPS(KVOISPH,NUMSPH),STAT=stat)
6507 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6512 EADD => IWORK(1:NUMSPH+1)
6513 CALL SPGRHEAD(KXSP ,IXSP ,IPARGTMP,PM ,IPART ,
6514 2 IPARTSP ,EADD ,CEPSP ,ND ,IPM ,
6515 3 IGEO ,SPBUF ,SPH2SOL,
6516 4 SOL2SPH ,IRST ,MAT_ELEM%MAT_PARAM,IXSPS)
6521 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6522 ALLOCATE(DD_TMP2(IDX-1))
6524 DD_TMP2(I)=DD_TMP(I)
6527 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6529 DD_TMP(I)=DD_TMP2(I)
6534 CALL SPGRTAILS(KXSP ,IPARGTMP,PM ,IPART ,
6535 2 IPARTSP ,EADD ,ND ,CEPSP,DD_TMP ,
6536 3 IDX ,IXSP ,IPM , IGEO ,
6537 4 SPBUF ,SPH2SOL,SOL2SPH ,
6538 5 IRST ,NOD2SP ,IPRI ,MAT_ELEM%MAT_PARAM,
6540 IF (ALLOCATED(IXSPS)) DEALLOCATE(IXSPS)
6551 !warning: please also update any index change
6552 ! for MODIF option (MODIF_SPMD.F)
6555 ITR1 => IWORK(K1+1:K2)
6556 EADD => IWORK(K2+1:K3)
6557 INDEX1 => IWORK(K3+1:K4)
6558 ITRI1 => IWORK(K4+1:K5)
6559 XEP => IWORK(K5+1:K6)
6562 1 KXX, GEO, INUM, ITR1,
6563 2 EADD, INDEX1, ITRI1, IPARTX,
6565 4 CEP(OFF), XEP,IPM)
6570 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6571 ALLOCATE(DD_TMP2(IDX-1))
6573 DD_TMP2(I)=DD_TMP(I)
6576 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6578 DD_TMP(I)=DD_TMP2(I)
6584 1 KXX ,IPARGTMP ,GEO ,EADD ,
6585 2 ND ,DD_TMP ,IDX ,LB_MAX ,INUM ,
6586 3 INDEX1 ,CEP(OFF) ,IPARTX ,ITR1 ,IGRSURF ,
6607 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
6608 3 IXR ,IXTG ,IXS10 ,IXS20 ,
6609 4 IXS16 ,IXTG1 ,IGEO ,KNOD2ELS ,KNOD2ELC ,
6610 5 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,NOD2EL1D ,
6611 6 KNOD2EL1D ,KXX ,IXX ,X ,LELX ,
6612 7 IXIG3D ,KXIG3D ,KNOD2ELIG3D,NOD2ELIG3D,KNOD2ELQ,
6616 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6617 IF(NUMELIG3D>0) THEN
6619 K1=(NIXIG3D+1)*NUMELIG3D
6628 ITR1 => IWORK(K1+1:K2)
6629 EADD => IWORK(K2+1:K3)
6630 INDEX1 => IWORK(K3+1:K4)
6631 ITRI1 => IWORK(K4+1:K5)
6632 XEP => IWORK(K5+1:K6)
6635 1 KXIG3D ,GEO ,INUM ,ITR1 ,EADD ,
6636 2 INDEX1 ,ITRI1 ,IPARTIG3D ,ND ,IGRSURF ,
6637 3 CEP(OFF) ,XEP ,IGEO ,
6638 4 IPM ,PM ,NIGE ,KNOTLOCEL)
6643 IF(IDX+ND*(NSPMD+1)>LDD_IAD)THEN
6644 ALLOCATE(DD_TMP2(IDX-1))
6646 DD_TMP2(I)=DD_TMP(I)
6649 ALLOCATE(DD_TMP(IDX+ND*(NSPMD+1)))
6651 DD_TMP(I)=DD_TMP2(I)
6657 1 KXIG3D ,IPARGTMP ,GEO ,EADD ,ND ,
6658 2 DD_TMP ,IDX ,LB_MAX ,INUM ,INDEX1 ,
6659 3 CEP(OFF) ,IPARTIG3D ,ITR1 ,IGRSURF ,
6661 5 PM ,NIGE ,KNOTLOCEL, MAT_ELEM%MAT_PARAM)
6662 OFF = OFF + NUMELIG3D
6670 ERR_MSG='reference metrics
'
6671 ERR_CATEGORY='reference metrics
'
6672 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6678.OR..OR.
IF(NXREF > 0 NEREF > 0 IREFSTA > 0) THEN
6679 ALLOCATE(XREFC(4,3,NUMELC))
6680 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6681 . MSGTYPE=MSGERROR,C1='xrefc
')
6682 ALLOCATE(XREFTG(3,3,NUMELTG))
6683 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6684 . MSGTYPE=MSGERROR,C1='xreftg
')
6685 ALLOCATE(XREFS(8,3,NUMELS8))
6686 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6687 . MSGTYPE=MSGERROR,C1='xrefs
')
6688 ALLOCATE(TAGXREF(NUMNOD))
6689 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6690 . MSGTYPE=MSGERROR,C1='tagxref
')
6691 ALLOCATE(TAGREFSTA(NUMNOD))
6692 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6693 . MSGTYPE=MSGERROR,C1='tagrefsta
')
6695 ALLOCATE(XREFC(1,1,1))
6696 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6697 . MSGTYPE=MSGERROR,C1='xrefc
')
6698 ALLOCATE(XREFTG(1,1,1))
6699 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6700 . MSGTYPE=MSGERROR,C1='xreftg
')
6701 ALLOCATE(XREFS(1,1,1))
6702 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6703 . MSGTYPE=MSGERROR,C1='xrefs
')
6704 ALLOCATE(TAGXREF(1))
6705 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6706 . MSGTYPE=MSGERROR,C1='tagxref
')
6707 ALLOCATE(TAGREFSTA(1))
6708 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6709 . MSGTYPE=MSGERROR,C1='tagrefsta
')
6717 WRITE(ISTDO,'(a)
')' .. reference state(xref)
'
6718 CALL HM_READ_XREF(ITABM1 ,IPART ,IPARTC ,IPARTG ,IPARTS ,
6719 . UNITAB ,IXC ,IXTG ,IXS ,X ,
6720 . XREFC ,XREFTG ,XREFS ,RTRANS ,LSUBMODEL ,
6721 . TAGXREF ,IDDLEVEL ,EANI ,IPM ,IGEO )
6723 IF(IREFSTA > 0) THEN
6724 WRITE(ISTDO,'(a)
')' .. reference state(refsta)
'
6725 CALL LECREFSTA(ITABM1 ,UNITAB ,IXC ,IXTG ,IXS ,
6726 . XYZREF ,XREFC ,XREFTG ,XREFS ,TAGXREF ,
6727 . IDDLEVEL,TAGREFSTA )
6729.AND..OR.
IF(IDDLEVEL==0 ((NINTER > 0)(ISMS == 1))) THEN
6732 IF(IPID /= 0) CLOSE(IIN6)
6739 WRITE(ISTDO,'(a)
')' .. reference state(eref)
'
6740 CALL HM_READ_EREF(ITABM1 ,IPART ,IPARTC ,IPARTG ,IPARTS ,
6741 . IXC ,IXTG ,IXS ,X ,XREFC ,
6742 . XREFTG ,XREFS ,LSUBMODEL,IDDLEVEL,ITAB ,
6743 . TAGXREF ,TAGREFSTA )
6745.OR..AND.
IF(IDDLEVEL ==1 ((NINTER == 0)(ISMS == 0))) NXREF = 1
6748 !check if a law 151 is associated to any PART
6749 MULTI_FVM%IS_ASSOCIATED_TO_A_PART = .FALSE.
6751 MLW = IPARGTMP(1,NG)
6753 MULTI_FVM%IS_ASSOCIATED_TO_A_PART = .TRUE.
6758 !check if all part are using law 151
6759 MULTI_FVM%ARE_ALL_PARTS_151 = .TRUE.
6762 MLW = IPARGTMP(1,NG)
6763 IS_EULER = IPARGTMP(11,NG)
6764 IF(IS_EULER == 1 ) NB_EULER_GROUPS=NB_EULER_GROUPS+1
6765.AND.
IF(MLW /= 151 IS_EULER == 1)THEN
6766 MULTI_FVM%ARE_ALL_PARTS_151 = .FALSE.
6770 IF(NB_EULER_GROUPS == 0)MULTI_FVM%ARE_ALL_PARTS_151 = .FALSE.
6772 !copy IPARG <- IPARGTMP, and Deallocate IPARGTMP
6773 SIPARG = NPARG*NGROUP
6774 IF(ALLOCATED(IPARG))DEALLOCATE(IPARG)
6775 ALLOCATE(IPARG(SIPARG) ,STAT=stat)
6778 IPARG((I-1)*NPARG + J) = IPARGTMP(J,I)
6781 DEALLOCATE(IPARGTMP)
6786 IPARG(NPARG*(N-1)+52)=1
6792 !---------------------------------------------------
6793 ! element renumbering after domdec for /fail/fractal
6794 !---------------------------------------------------
6795 call fractal_elem_renum(fail_fractal,numelc,numeltg)
6797 !---------------------------------------------------
6798 ! element renumbering after domdec for /fail/alter + brokmann
6799 !---------------------------------------------------
6800 if (iddlevel==1) call brokmann_elem_renum(fail_brokmann,numelc,numeltg)
6804 IF(ALLOCATED(GROUP_PARAM_TAB)) DEALLOCATE(GROUP_PARAM_TAB)
6805 ALLOCATE(GROUP_PARAM_TAB(NGROUP) ,STAT=stat)
6807 CALL SET_ELGROUP_PARAM(GROUP_PARAM_TAB ,IPARG ,NGROUP ,N2D ,
6808 . IPM ,IGEO ,PM ,GEO ,BUFMAT )
6815 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
6816 ALLOCATE(ITAGND(NUMNOD),STAT=stat)
6818 CALL DIM_S10EDG(NS10E, IXS10 ,IPARG,ITAGND)
6820 IF(ALLOCATED(ICNDS10)) DEALLOCATE(ICNDS10)
6821 ALLOCATE(ICNDS10(3*NS10E),STAT=stat)
6822 ICNDS10(1:3*NS10E)=0
6824 CALL IND_S10EDG(ICNDS10, IXS, IXS10 ,IPARG,ITAGND)
6825 IF(IPARI0/=0) CALL REORD_ICND(ICNDS10, ITAGND)
6826 CALL S10EDG_RLINK(NLINK, NUMLINK,NNLINK,LNLINK,
6827 . ITAGND,ICNDS10,ITAB,IPRI,NUMNOD,NS10E)
6830 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
6831 ALLOCATE(ITAGND(0),STAT=stat)
6838 ERR_MSG='domain decomposition arrays
'
6839 ERR_CATEGORY='domain decomposition
'
6840 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6841 SDD_IAD = (NSPMD+1)*NSPGROUP
6842 ALLOCATE(DD_IAD(SDD_IAD) ,STAT=stat)
6845 1 IPARG ,IXS ,IXQ ,IXC ,IXT ,
6846 2 IXP ,IXR ,IXTG ,DD_IAD ,
6847 3 X ,DD_TMP ,IXS10 ,IXS20 ,
6848 4 IXS16 ,KXX ,IXX ,KXSP ,IXSP ,
6856 ERR_MSG='multidomains
'
6857 ERR_CATEGORY='multidomains
'
6858.AND..AND.
IF((NSUBDOM>0)(IDDOM==0)(FLG_R2R_ERR==0)) THEN
6859 WRITE(ISTDO,'(a)
')' .. multidomains domdec synchronization
'
6860 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,0)
6865 ERR_MSG='element buffer allocation
'
6866 ERR_CATEGORY='internal
'
6867 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6869 ALLOCATE(ELBUF(SELBUF) ,STAT=stat)
6870 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6879 ERR_CATEGORY='gravity
'
6880 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6882 CALL HM_PREREAD_GRAV(NUMGRAV ,IGRNOD , LSUBMODEL)
6886 ALLOCATE(IGRV(SIGRV) ,STAT=stat)
6887 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6890 ALLOCATE(LGRAV(SLGRAV) ,STAT=stat)
6891 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6896 CALL HM_READ_GRAV(IGRV ,LGRAV ,GRAV ,ITAB ,ITABM1 ,
6897 . IGRNOD ,NPC ,SENSORS ,UNITAB ,ISKWN ,
6898 . ITAGND ,LSUBMODEL)
6904 ERR_CATEGORY='gravity
'
6905 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6906 IF(NINIGRAV > 0) SINIGRAV = NINIGRAV
6907 IF(IDDLEVEL == 0) THEN
6908 ALLOCATE(INIGRV(04,SINIGRAV) ,STAT=stat)
6909 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6912 ALLOCATE(LINIGRAV(11,SINIGRAV) ,STAT=stat)
6913 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
6917 IF(NINIGRAV > 0) THEN
6918 IF(IDDLEVEL == 0) THEN
6920 WRITE(ISTDO,'(a)
') ' .. initial gravity loading
'
6921 CALL HM_READ_INIGRAV(IGRV ,LGRAV ,GRAV ,ITAB ,ITABM1 ,
6922 . IGRPART ,NPC ,UNITAB ,ISKWN ,
6923 . ITAGND ,IGRSURF ,TF ,BUFSF ,LSUBMODEL)
6930 ERR_MSG = 'inimap1d
'
6931 ERR_CATEGORY= 'initialization
'
6932 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6934.AND.
IF(IDDLEVEL==0 NINIMAP1D+NINIMAP2D>0)WRITE(ISTDO,'(a)
')TITRE(54)
6937 ALLOCATE(INIMAP1D(NINIMAP1D))
6938 IF(NINIMAP1D > 0) THEN
6939 CALL HM_READ_INIMAP1D(INIMAP1D ,NPC , ITABM1, X, IGRBRIC,
6940 . IGRQUAD ,IGRSH3N, MULTI_FVM, UNITAB, LSUBMODEL)
6941.NOT.
IF( MULTI_FVM%IS_USED) THEN
6942 DO KK = 1, NINIMAP1D
6943 ALLOCATE(INIMAP1D(KK)%TAGNODE(NUMNOD))
6944 INIMAP1D(KK)%TAGNODE(1:NUMNOD) = 0
6953 ERR_MSG = 'inimap2d
'
6954 ERR_CATEGORY= 'initialization
'
6955 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6957 ALLOCATE(INIMAP2D(NINIMAP2D))
6958 IF(NINIMAP2D > 0) THEN
6959 CALL HM_READ_INIMAP2D(INIMAP2D, FUNC2D, ITABM1, X, IGRBRIC,
6960 . IGRQUAD , IGRSH3N, UNITAB, LSUBMODEL)
6961.NOT.
IF( MULTI_FVM%IS_USED) THEN
6962 DO KK = 1, NINIMAP2D
6963 ALLOCATE(INIMAP2D(KK)%TAGNODE(NUMNOD))
6964 INIMAP2D(KK)%TAGNODE(1:NUMNOD) = 0
6974 ERR_MSG='load fields
'
6975 ERR_CATEGORY='load fields
'
6976 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
6977 IF(IDDLEVEL == 0)THEN
6980 ALLOCATE(ICFIELD(SICFIELD) ,STAT=stat)
6981 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='icfield')
6982 ALLOCATE(LCFIELD(SLCFIELD) ,STAT=stat)
6983 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='lcfield')
6984 ALLOCATE(CFIELD(SCFIELD) ,STAT=stat)
6985 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='cfield
')
6987 IF(ALLOCATED(ICFIELD)) ICFIELD(:) = 0
6988 IF(ALLOCATED(LCFIELD)) LCFIELD(:) = 0
6989 IF(ALLOCATED(CFIELD )) CFIELD(:) = ZERO
6990!READING CARDS & STORING DATA
6992 CALL HM_READ_LOAD_CENTRI(ICFIELD ,LCFIELD ,CFIELD ,ITAB ,ITABM1 ,
6993 . IGRNOD ,NPC ,SENSORS ,UNITAB ,IFRAME ,
6998 ALLOCATE(ILOADP(SILOADP) ,STAT=stat)
6999 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='iloadp')
7000 ALLOCATE(LLOADP(SLLOADP) ,STAT=stat)
7001 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='lloadp')
7002 ALLOCATE(LOADP(SLOADP) ,STAT=stat)
7003 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='loadp
')
7004 ALLOCATE(INTERLOADP(NINTLOADP) ,STAT=stat)
7005 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='interloadp')
7006 ALLOCATE(INTGAPLOADP(NINTLOADP) ,STAT=stat)
7007 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='intgaploadp
')
7010 IF(NINTLOADP > 0) THEN
7011 S_LOADPINTER = NINTER*NLOADP_HYD
7012 ALLOCATE(KLOADPINTER(NINTER + 1) ,STAT=stat)
7013 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='kloadpinter')
7014 ALLOCATE(LOADPINTER(S_LOADPINTER) ,STAT=stat)
7015 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='loadpinter')
7016 ALLOCATE(DGAPINT(NINTER) ,STAT=stat)
7017 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='dgapint
')
7018 ALLOCATE(DGAPLOADINT(S_LOADPINTER) ,STAT=stat)
7019 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='dgaploadint
')
7021 ALLOCATE(KLOADPINTER(0))
7022 ALLOCATE(LOADPINTER(0))
7023 ALLOCATE(DGAPINT(0))
7024 ALLOCATE(DGAPLOADINT(0))
7028 IF(ALLOCATED(ILOADP )) ILOADP(:) = 0
7029 IF(ALLOCATED(LLOADP )) LLOADP(:) = 0
7030 IF(ALLOCATED(LOADP )) LOADP(:) = ZERO
7031 IF(ALLOCATED(INTERLOADP )) INTERLOADP(:) = 0
7032 IF(ALLOCATED(KLOADPINTER )) KLOADPINTER(:) = 0
7033 IF(ALLOCATED(LOADPINTER )) LOADPINTER(:) = 0
7034 IF(ALLOCATED( INTGAPLOADP )) INTGAPLOADP(:)=ZERO
7035 IF(ALLOCATED( DGAPINT )) DGAPINT(:)=ZERO
7036 IF(ALLOCATED( DGAPLOADINT )) DGAPLOADINT(:)=ZERO
7037!READING CARDS & STORING DATA
7042 CALL HM_READ_PFLUID(NUMLOADP ,ILOADP ,LLOADP ,LOADP ,NPC ,
7043 . SENSORS ,IGRSURF ,UNITAB ,IFRAME ,LSUBMODEL)
7045 IF(PBLAST%NLOADP_B/=0)THEN
7046 CALL HM_READ_PBLAST( PBLAST,
7047 . ITAB ,ITABM1 ,UNITAB ,IGRSURF, NUMLOADP,
7048 . ILOADP ,LLOADP ,LOADP ,X , BUFSF ,
7051 IF(NLOADP_HYD/=0)THEN
7052 CALL HM_READ_LOAD_PRESSURE(
7053 . NUMLOADP ,ILOADP ,LLOADP ,INTERLOADP ,LOADP ,
7054 . KLOADPINTER,LOADPINTER ,NPC ,SENSORS ,IGRSURF ,
7055 . UNITAB ,ISKWN ,LSUBMODEL ,DGAPINT ,INTGAPLOADP,
7056 . DGAPLOADINT,S_LOADPINTER,PBLAST)
7060 DEALLOCATE( INTERLOADP,INTGAPLOADP )
7068 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7069 CALL HM_PREREAD_RBE2(SIRBE2,SLRBE2,IGRNOD,LSUBMODEL)
7071 ALLOCATE(IRBE2(SIRBE2) ,STAT=stat)
7072 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7077 ALLOCATE(LRBE2(SLRBE2) ,STAT=stat)
7078 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7086 . IRBE2 ,LRBE2 ,ITAB ,ITABM1 ,IGRNOD,
7087 . ISKWN ,D ,IDDLEVEL ,NOM_OPT(LNOPT1*INOM_OPT(13)+1),ITAGND,
7088 . ICNDS10 ,LSUBMODEL)
7092 CALL C_NEW_HASH(GRNOD_UID,NGRNOD)
7094 CALL C_HASH_INSERT(GRNOD_UID,IGRNOD(I)%ID,I)
7103 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7104 CALL HM_PREREAD_RBE3(SIRBE3,SLRBE3,IGRNOD,GRNOD_UID,LSUBMODEL)
7107 SFRBE3 = (3+1)*SLRBE3
7109 ALLOCATE(IRBE3(SIRBE3) ,STAT=stat)
7110 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7113 ALLOCATE(LRBE3(SLRBE3), FRBE3(SFRBE3) ,STAT=stat)
7114 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7122 CALL HM_READ_RBE3(IRBE3 ,LRBE3 ,FRBE3 ,ITAB ,ITABM1 ,
7123 . IGRNOD ,ISKWN ,LXINTD ,D ,IDDLEVEL,
7124 . NOM_OPT(LNOPT1*INOM_OPT(14)+1),ITAGND ,
7125 . GRNOD_UID,UNITAB,LSUBMODEL)
7128 CALL C_DELETE_HASH(GRNOD_UID)
7135 DYNAIN_DATA%DYNAIN_CHECK = 0
7136 CALL CHECK_DYNAIN(IPART,IPARTC,IPARTG,IXC,IXTG,DYNAIN_DATA%DYNAIN_CHECK)
7141 CALL INI_H3DTMAX_ENGINE(IPARG,IPART,IPARTS,IPARTC,IPARTG,IDDLEVEL)
7146 IF(NUMELC/=0) CALL CHECK_QEPH_STRA(ISTR_24)
7147 IF (ISIGI < 0) ISTR_24=1
7151 ERR_MSG='elements deactivation
'
7152 ERR_CATEGORY='elements deactivation
'
7153 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7154 SIACTIV = LACTIV*NACTIV
7156 ALLOCATE(IACTIV(SIACTIV), FACTIV(LRACTIV*NACTIV) ,STAT=stat)
7157 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7158 . MSGTYPE=MSGERROR, C1='iactiv')
7161 IF(NACTIV > 0) CALL HM_READ_ACTIV(IACTIV ,FACTIV ,SENSORS,IGRBRIC,
7162 . IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS,IGRBEAM,
7163 . IGRSPRING,LSUBMODEL,UNITAB)
7165 SIBMPC = NUMMPC + LMPC*3
7167 ALLOCATE(IBMPC(SIBMPC) ,STAT=stat)
7168 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7174 IBMPC2 => IBMPC(NUMMPC+1:NUMMPC+LMPC)
7175 IBMPC3 => IBMPC(NUMMPC+LMPC+1:NUMMPC+LMPC*2)
7176 IBMPC4 => IBMPC(NUMMPC+LMPC*2+1:SIBMPC)
7185 ALLOCATE(KINET(SKINET) ,STAT=stat)
7186 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7192 SIPARI = NPARI*NINTER
7194 ALLOCATE(IPARI(SIPARI) ,STAT=stat)
7195 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7204 ERR_MSG='solid elements faces
'
7205 ERR_CATEGORY='solid elements faces
'
7206 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7207 ALLOCATE(FASTAG(NUMELS) ,STAT=stat)
7208 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7211 CALL ANI_FASOLFR1(IXS,IXC,IXTG,FASTAG,ISOLNOD)
7212 SFASOLFR = 2*NFASOLFR
7214 ALLOCATE(FASOLFR(SFASOLFR),STAT=stat)
7215 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7219 CALL ANI_FASOLFR2(FASTAG,FASOLFR,ISOLNOD)
7225 ERR_MSG='quad elements segs
'
7226 ERR_CATEGORY='quad elements segs
'
7227 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7228 ALLOCATE(SEGTAG(4*NUMELQ) ,STAT=stat)
7229 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7232 SEGTAG (1:4*NUMELQ) = 0
7233 CALL ANI_SEGQUADFR1(IXQ ,SEGTAG ,KNOD2ELQ ,NOD2ELQ ,X ,NSEGQUADFR)
7234 SSEGQUADFR = 2*NSEGQUADFR
7236 ALLOCATE(SEGQUADFR(SSEGQUADFR),STAT=stat)
7237 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7241 CALL ANI_SEGQUADFR2(SEGTAG,SEGQUADFR)
7249 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7250 IF(NUMMPC > 0) CALL HM_READ_MPC (
7251 1 RBMPC ,IBMPC ,IBMPC2 ,IBMPC3 ,IBMPC4 ,
7252 2 ISKWN ,ITAB ,ITABM1 ,LAG_NCF ,LAG_NKF ,
7253 3 LAG_NHF ,D ,IKINE1LAG,
7254 4 NOM_OPT(LNOPT1*INOM_OPT(17)+1),ITAGND,
7260 IF(ALLOCATED(TAGPRT_FRIC)) DEALLOCATE(TAGPRT_FRIC)
7261 ALLOCATE(TAGPRT_FRIC(NPART),STAT=stat)
7262 TAGPRT_FRIC(1:NPART) = 0
7269 IF(NINTERFRIC > 0) THEN
7271 IF(IDDLEVEL == 0) ALLOCATE(INTBUF_FRIC_TAB(NINTERFRIC), STAT=Stat)
7274 ALLOCATE(TABCOUPLEPARTS_FRIC_TMP(1),STAT=stat)
7275 ALLOCATE(TABCOEF_FRIC_TMP(1),STAT=stat)
7276 ALLOCATE(IFRICORTH_TMP(1),STAT=stat)
7277 ALLOCATE(LENGRPF(NPART),STAT=stat)
7278 LENGRPF(1:NPART) = 0
7282 LENG = MAX (LENG,IGRPART(N)%NENTITY)
7291 CALL HM_READ_FRICTION_MODELS(
7292 1 NOM_OPT(LNOPT1*INOM_OPT(29)+1),UNITAB,IGRPART ,IPART ,TAGPRT_FRIC,
7293 2 TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB,NSETFRICTOT ,
7294 3 FLAGF ,COEFSLEN , IORTHFRICMAX ,IFRICORTH_TMP ,NGRPF ,
7295 4 LENGRPF ,LENG , NSETMAX ,LSUBMODEL )
7297 DEALLOCATE(TABCOUPLEPARTS_FRIC_TMP)
7298 DEALLOCATE(TABCOEF_FRIC_TMP)
7299 DEALLOCATE(IFRICORTH_TMP)
7302 ALLOCATE(TABCOUPLEPARTS_FRIC_TMP(2*NINTERFRIC*NSETMAX),STAT=stat)
7303 COEFSLEN = NINTERFRIC*(2*NSETMAX+1)
7304 ALLOCATE(TABCOEF_FRIC_TMP(8*COEFSLEN),STAT=stat)
7305 TABCOUPLEPARTS_FRIC_TMP(1:2*NINTERFRIC*NSETMAX) = 0
7306 TABCOEF_FRIC_TMP(1:8*COEFSLEN) = ZERO
7308 ALLOCATE(IFRICORTH_TMP(NINTERFRIC*NSETMAX),STAT=stat)
7309 IFRICORTH_TMP(1:NINTERFRIC*NSETMAX) = 0
7316 CALL HM_READ_FRICTION_MODELS(
7317 1 NOM_OPT(LNOPT1*INOM_OPT(29)+1),UNITAB,IGRPART ,IPART ,TAGPRT_FRIC,
7318 2 TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB,NSETFRICTOT ,
7319 3 FLAGF ,COEFSLEN , IORTHFRICMAX ,IFRICORTH_TMP ,NGRPF ,
7320 4 LENGRPF ,LENG , NSETMAX , LSUBMODEL )
7324 COEFSLEN = NINTERFRIC*(2*NSETMAX+1)
7325 ALLOCATE(NSETINIT(NINTERFRIC),STAT=stat)
7326 ALLOCATE(TABPARTS_FRIC_TMP(2*NINTERFRIC*NSETMAX),STAT=stat)
7327 NSETINIT(1:NINTERFRIC) = 0
7328 TABPARTS_FRIC_TMP (1:2*NINTERFRIC*NSETMAX) = 0
7331 . TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB ,
7332 . TABPARTS_FRIC_TMP,NSETFRICTOT,NSETINIT,IORTHFRICMAX,IFRICORTH_TMP,
7337 IF(IDDLEVEL == 0) CALL INTBUF_FRIC_INI_STARTER(INTBUF_FRIC_TAB )
7340 CALL INTBUF_FRIC_COPY(
7341 . TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP,TABPARTS_FRIC_TMP ,
7342 . NSETINIT ,IFRICORTH_TMP , INTBUF_FRIC_TAB )
7344 DEALLOCATE(TABCOUPLEPARTS_FRIC_TMP)
7345 DEALLOCATE(TABCOEF_FRIC_TMP)
7346 DEALLOCATE(TABPARTS_FRIC_TMP )
7348 DEALLOCATE( NSETINIT )
7349 DEALLOCATE(IFRICORTH_TMP)
7350 DEALLOCATE(LENGRPF )
7354 IF(IORTHFRICMAX > 0) THEN
7359.NOT.
IF(ALLOCATED(PFRICORTH))ALLOCATE(PFRICORTH(NPART),STAT=stat)
7360.NOT.
IF(ALLOCATED(IREPFORTH))ALLOCATE(IREPFORTH(1),STAT=stat)
7361.NOT.
IF(ALLOCATED(VFORTH))ALLOCATE(VFORTH(1),STAT=stat)
7362.NOT.
IF(ALLOCATED(PHIFORTH))ALLOCATE(PHIFORTH(1),STAT=stat)
7364 PFRICORTH(1:NPART) = 0
7366 CALL HM_READ_FRICTION_ORIENTATIONS (INTBUF_FRIC_TAB ,
7367 1 NPFRICORTH ,IGRPART ,IPART ,PFRICORTH ,
7368 2 IREPFORTH ,ISKWN ,PHIFORTH ,VFORTH ,SKEW ,
7369 3 FLAGF ,TAGPRT_FRIC ,RTRANS ,LSUBMODEL ,UNITAB )
7371 DEALLOCATE(IREPFORTH,VFORTH,PHIFORTH)
7373 ALLOCATE(IREPFORTH(NPFRICORTH),STAT=stat)
7374 ALLOCATE(VFORTH(3*NPFRICORTH),STAT=stat)
7375 ALLOCATE(PHIFORTH(NPFRICORTH),STAT=stat)
7377 IREPFORTH(1:NPFRICORTH) = 0
7378 VFORTH(1:3*NPFRICORTH) = ZERO
7379 PHIFORTH(1:NPFRICORTH) = ZERO
7382 CALL HM_READ_FRICTION_ORIENTATIONS (INTBUF_FRIC_TAB ,
7383 1 NPFRICORTH ,IGRPART ,IPART ,PFRICORTH ,
7384 2 IREPFORTH ,ISKWN ,PHIFORTH ,VFORTH ,SKEW ,
7385 3 FLAGF ,TAGPRT_FRIC ,RTRANS ,LSUBMODEL ,UNITAB )
7388 ELSEIF(IDDLEVEL == 0) THEN !NINTERFRIC = 0
7389 ALLOCATE(INTBUF_FRIC_TAB(0))
7391.NOT.
IF(ALLOCATED(PFRICORTH))ALLOCATE(PFRICORTH(0))
7392.NOT.
IF(ALLOCATED(IREPFORTH))ALLOCATE(IREPFORTH(1))
7393.NOT.
IF(ALLOCATED(VFORTH)) ALLOCATE(VFORTH(1))
7394.NOT.
IF(ALLOCATED(PHIFORTH)) ALLOCATE(PHIFORTH(1))
7400 CALL ALE_CONNECTIVITY%ALE_CONNECTIVITY_INIT()
7401 IF(ALE_CONNECTIVITY%has_ne_connect) THEN
7402 CALL ALE_CONNECTIVITY%ALE_COMPUTE_CONNECTIVITY(NUMNOD, NUMELQ, NUMELTG, NUMELS,
7403 . NIXQ, NIXTG, NIXS,
7406 CALL ALE_CONNECTIVITY%ALE_COMPUTE_EE_CONNECTIVITY(PM,IGEO,
7407 . NPROPGI,NUMGEO, NPROPM, NUMMAT , NUMNOD, NUMELQ, NUMELTG, NUMELS, N2D,
7408 . IALE , IEULER, GLOB_THERM%ITHERM, IALELAG,DETONATORS%IS_SHADOWING_REQUIRED,
7409 . NIXQ , NIXTG , NIXS ,
7410 . IXQ , IXTG , IXS )
7412 IF(NSUBDOM > 0) THEN
7414 IF(ALE_EULER == 0) THEN
7426 CALL CHK_SHELL_OFFSET(
7427 . NGROUP, NPARG, IPARG, NPROPG,
7428 . NUMGEO, GEO, DEFAULTS%SHELL%IOFFSET)
7429 IF (DEFAULTS%SHELL%IOFFSET>0) THEN
7431 IF (IDDLEVEL == 0) THEN
7433 IF (DEFAULTS%SHELL%IOFFSET==1) THEN
7434 ALLOCATE(ITAGOSET(NUMELC+NUMELTG), STAT=Stat)
7435 ALLOCATE(XYZ(3*NUMNOD), STAT=Stat)
7437 ALLOCATE(ITAGOSET(0), STAT=Stat)
7442 IF (DEFAULTS%SHELL%IOFFSET==1) THEN
7443 XYZ(1:3*NUMNOD) = X(1:3*NUMNOD)
7452 . NGROUP, NPARG, IPARG, NPROPG,
7453 . NUMGEO, GEO, NUMELC, NIXC,
7454 . IXC, NUMELTG, NIXTG, IXTG,
7455 . NUMNOD, X_C, THKE, ITAGOSET,
7457 ELSEIF (IDDLEVEL == 0) THEN
7465 ERR_MSG='interfaces
'
7466 ERR_CATEGORY='interfaces
'
7467 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7470 INTERFACES%PARAMETERS%ISTIF_DT = 0
7473 INTERFACES%PARAMETERS%INT25_EROSION_SOLID = 0
7475.AND.
IF(NINTER == 0NINTERFRIC > 0 )THEN
7476 CALL ANCMSG(MSGID=1593,
7477 . MSGTYPE=MSGWARNING,
7478 . ANMODE=ANINFO_BLIND_1)
7482 IF(IDDLEVEL == 0) THEN
7483 ALLOCATE(XFILTR(NINTER) ,STAT=stat)
7484 ALLOCATE(STFAC(NINTER) ,STAT=stat)
7485 ALLOCATE(FRIC_P(10*NINTER) ,STAT=stat)
7486 ALLOCATE(I2RUPT(6*NINTER) ,STAT=stat)
7487 ALLOCATE(AREASL(NINTER) ,STAT=stat)
7488 ALLOCATE(FRIGAP(NPARIR*NINTER),STAT=stat)
7489 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7500 IF(IDDLEVEL == 0) CALL STARTIME(10,1)
7501 IF(IDDLEVEL == 1) CALL STARTIME(11,1)
7503 WRITE(ISTDO,'(a)
')TITRE(38)
7505 CALL HM_READ_INTSUB(IGRNOD ,IGRSURF,NOM_OPT(LNOPT1*INOM_OPT(3)+1),IGRSLIN,LSUBMODEL)
7511 NSN_MULTI_CONNEC = 0
7512 ALLOCATE(T2_NB_CONNEC(NUMNOD))
7513 T2_NB_CONNEC(1:NUMNOD) = 0
7518 CALL HM_READ_INTERFACES(
7519 1 IPARI ,FRIGAP ,ITAB ,ITABM1 ,
7520 2 IGRNOD ,IGRSURF ,IGRSLIN ,IGRBRIC ,IGRSH3N ,
7521 3 IGRTRUSS ,NPC ,ISKWN ,XFILTR ,STFAC ,
7522 4 FRIC_P ,I2RUPT ,AREASL ,UNITAB ,NOM_OPT(LNOPT1*INOM_OPT(3)+1) ,
7523 5 DEF_INTER ,NPC1 ,SENSORS ,MULTI_FVM ,NOM_OPT(LNOPT1*INOM_OPT(29)+1),
7524 6 INTBUF_FRIC_TAB ,LSUBMODEL,TF ,NPTS ,NPARI ,
7525 7 KLOADPINTER ,DGAPINT ,INTERFACES ,SITAB ,NPARIR ,
7526 8 SITABM1 ,SISKWN ,LISKN ,SNPC ,SNPC1 ,
7527 9 GLOB_THERM%ITHERM_FE,GLOB_THERM%INTHEAT)
7529.NOT.
IF( ALLOCATED(ALE_CONNECTIVITY%NALE)) ALLOCATE(ALE_CONNECTIVITY%NALE(0))
7532 ALLOCATE(LIST_NIN25(NINTER))
7533 LIST_NIN25(1:NINTER) = 0
7535.AND.
IF(NINTER25 >0NUMELS > 0) THEN
7536 ALLOCATE(FLAG_ELEM_INTER25(NINTER25,NUMELS))
7537 FLAG_ELEM_INTER25 (1:NINTER25,1:NUMELS) = 0
7539 ALLOCATE(FLAG_ELEM_INTER25(0,0))
7542 CALL LECINT (IPARI ,NINTER ,IPM ,BUFMAT ,
7543 . NMNT ,ITAB ,ITABM1 ,GEO ,
7544 . PM ,X ,IGRNOD ,IGRSURF ,IGRSLIN ,
7545 . NPC ,PROBINT ,LAG_NCF ,
7546 . LAG_NKF ,LAG_NCL ,LAG_NKL ,LAG_NHF ,MAXRTM ,
7547 . ISKWN ,MAXRTMS ,IGEO ,
7548 . XFILTR ,STFAC ,FRIC_P ,FRIGAP ,
7549 . I2RUPT ,AREASL ,UNITAB ,IXS ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7550 . ITAG ,IXC ,IXTG ,KNOD2ELC ,KNOD2ELTG,
7551 . NOD2ELC ,NOD2ELTG ,KNOD2ELS ,NOD2ELS ,IXS10 ,
7552 . IXS16 ,IXS20 ,DEF_INTER ,MAXNSNE ,
7553 . NPC1 ,MULTI_FVM ,NOM_OPT(LNOPT1*INOM_OPT(29)+1),INTBUF_FRIC_TAB,
7554 . IGRBRIC ,IGRSH3N ,IGRTRUSS ,MAXRTM_T2 ,NSN_MULTI_CONNEC,
7555 . T2_NB_CONNEC,IDDLEVEL ,ALE_CONNECTIVITY%NALE ,INTERFACES ,SNPC1 ,
7556 . FLAG_ELEM_INTER25 ,LIST_NIN25)
7558 !need to allocate only once at first passage in lectur
7560 !PROC argument is used only for call in ddsplit
7563 IF(IDDLEVEL == 0) THEN
7564 !--------------------------------------------!
7565 ! NEW INTERFACE BUFFER STRUCTURE ALLOCATION
7566 !--------------------------------------------!
7567 ALLOCATE(INTBUF_TAB(NINTER), STAT=Stat)
7568 !--------------------------------------------!
7570 !--------------------------------------------!
7571 !NEW INTERFACE BUFFER STRUCTURE INITIALIZATION
7572 !--------------------------------------------!
7573 CALL INTBUF_INI_STARTER(INTBUF_TAB, IPARI, NUMNOD,
7574 . I11FLAG, FLAG_ALLOCATE, PROC_BID ,INTBUF_FRIC_TAB)
7575 !--------------------------------------------!
7577 CALL INT8_INI(INTBUF_TAB,IPARI,NBT8)
7578 ALLOCATE(INTERT8(NSPMD,NBT8))
7581 ALLOCATE(INTERT8(P,I)%BUFFER(NSPMD))
7583 INTERT8(P,I)%BUFFER(J)%NBMAIN = -1
7584 INTERT8(P,I)%BUFFER(J)%NBSECND_TOT = 0
7588 ! -------------------
7589 ! allocation of arrays for the interface 18 with law 151
7590 CALL INT18_LAW151_ALLOC(NPARI,NINTER,NUMNOD,NUMELS,MULTI_FVM,IPARI)
7591 ! -------------------
7596 IF(NINTSTAMP/=0)THEN
7597 IF(IDDLEVEL == 0) THEN
7598 ALLOCATE(INTSTAMP(NINTSTAMP) ,STAT=stat)
7599 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7602 CALL INTSTAMP_ZERO(INTSTAMP)
7605 IF(IDDLEVEL == 0) THEN
7606 ALLOCATE(INTSTAMP(0))
7610 CALL LECINS(IPARI ,ITAB ,PM ,IPM ,BUFMAT ,
7611 . IGRNOD ,IGRSURF ,IGRSLIN ,XFILTR ,STFAC ,
7612 . FRIC_P ,FRIGAP ,I2RUPT ,AREASL ,LIXINT ,
7613 . X ,NINTER ,IXS ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7614 . IXC ,IXTG ,KNOD2ELC ,KNOD2ELTG ,NOD2ELC,
7615 . NOD2ELTG ,INTBUF_TAB,KNOD2ELS ,NOD2ELS ,IXS10 ,
7616 . IXS16 ,IXS20 ,NIGE ,RIGE ,XIGE ,
7617 . VIGE ,IGRBRIC ,MULTI_FVM,ALE_CONNECTIVITY%NALE ,IGEO ,
7618 . INTERFACES,S_NOD2ELS,S_NOD2ELTG,FLAG_ELEM_INTER25 ,LIST_NIN25)
7632 . ITAB ,IGRNOD ,IGRSURF ,
7633 . IPARI ,MAXRTM,NOM_OPT(LNOPT1*INOM_OPT(3)+1),
7634 . INTBUF_TAB,MAXRTMS ,IGRSLIN ,MAXNSNE)
7637 IF(IDDLEVEL == 0) THEN
7638 ALLOCATE(INSCR(NINTER) ,STAT=stat)
7639 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7645 CALL PRESCRINT(IPARI,INTBUF_TAB,INSCR)
7647 IF(IDDLEVEL == 0) THEN
7650 ALLOCATE(INSCR(I)%WA(INSCR(I)%SINSCR) ,STAT=stat)
7651 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7661 CALL SCRINT(IPARI ,INSCR, INTBUF_TAB)
7663 IF(IDDLEVEL == 0) CALL STOPTIME(10,1)
7664 IF(IDDLEVEL == 1) CALL STOPTIME(11,1)
7666 WRITE(ISTDO,'(a)
')TITRE(68)
7668 AUX = MAX( NUMNOD , NUMELT+NUMELP+NUMELR+NUMELTG+NUMELC+100 ,
7670 NS_I7 = 2*NUMNOD + 2002 + 4*AUX
7672 NS_I11 = 2002 + NMNT
7673 AUX = 2002 + 8*MAXRTMS
7674 NS_I11 = MAX(NS_I11,AUX)
7677 AUX = MAX( NUMNOD , MAXRTM_T2+100 )
7678 NS_I2 = 2*NUMNOD + 2002 + 4*AUX
7680 IFIP=MAX(NS_I7,NS_I11,
7681 . NUMNOD+2+4*NUMELC+4*NUMELTG+8*NUMELS
7682 . +2*NUMELT+2*NUMELP+2*NUMELR)
7684 SIWORK = MAX(NS_I7,NS_I11,NUMNOD+2+4*NUMELC+4*NUMELTG+8*NUMELS
7685 . + 2*NUMELT+2*NUMELP+2*NUMELR+16*NUMELS10+ 2*(SIXX-1)
7688 SRWORK = MAX(6000,NUMNOD)
7689 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
7690 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
7694.AND.
IF(LXINTD>0NSPMD>1) LIXINT = LIXINT + LXINTD
7696 INTER_CAND%S_IXINT_2 = LIXINT
7698 IF( ALLOCATED(INTER_CAND%IXINT) ) DEALLOCATE( INTER_CAND%IXINT )
7699 ALLOCATE(INTER_CAND%IXINT(INTER_CAND%S_IXINT_1,INTER_CAND%S_IXINT_2))
7700 ALLOCATE(XTMP(3*NUMNOD) ,STAT=stat)
7701 XTMP = D(1:3*NUMNOD)
7709.NOT.
IF(ALLOCATED(FILLSOL)) ALLOCATE(FILLSOL(NUMELS),STAT=stat)
7710 IF(STAT/=0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7713 IF(NUMELS/=0) CALL LECFILL(IXS,FILLSOL,UNITAB,LSUBMODEL)
7715 IF(IDDLEVEL == 0) CALL STARTIME(12,1)
7716 IF(IDDLEVEL == 1) CALL STARTIME(13,1)
7718 CALL INT18_LAW151_INIT(MULTI_FVM%S_APPEND_ARRAY,NINTER,NPARI,
7719 1 NUMNOD,NUMELS,NGRBRIC,
7720 2 MULTI_FVM,IGRBRIC,IPARI,IXS,
7722 5 MULTI_FVM%X_APPEND,MULTI_FVM%V_APPEND,MULTI_FVM%MASS_APPEND,MULTI_FVM%KINET_APPEND)
7728 CALL FILL_INTERCEP(IPARI,INTBUF_TAB,INTERCEP)
7730 CALL ININTR(IPARI ,INSCR ,X_C ,V ,IXS ,IXQ ,
7731 2 IXC ,PM ,GEO ,ITAB ,MS ,
7732 3 IWORK ,RWORK ,IXTG ,D ,IXT ,
7733 4 IXP ,IXR ,ALE_CONNECTIVITY ,NELEMINT ,IDDLEVEL ,
7734 5 LIXINT ,IGRBRIC ,IWCONT ,IWCIN2 ,KNOD2ELS ,
7735 7 KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,
7736 8 IGRSURF ,IELEM21 ,SH4TREE ,SH3TREE ,IPART ,
7737 9 IPARTC ,IPARTG ,THKE ,THK_PART ,NOD2EL1D ,
7738 A KNOD2EL1D ,IXS10 ,INTER_CAND ,FRIGAP ,IXS16 ,
7739 B IXS20 ,IPM ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),IPARTS ,SISKWN ,
7740 C KXX ,IXX ,IGEO ,INTERCEP ,LELX ,
7741 D INTBUF_TAB,FILLSOL ,STACK ,IWORKSH ,NSNT ,
7742 E NMNT_2 ,KXIG3D ,IXIG3D ,KNOD2ELQ ,NOD2ELQ ,
7743 F SEGQUADFR ,TAGPRT_FRIC,INTBUF_FRIC_TAB ,IPARTT ,
7744 G IPARTP ,IPARTX ,IPARTR ,NSN_MULTI_CONNEC ,T2_NB_CONNEC,
7745 H SICODE ,ICODE ,ISKEW ,MULTI_FVM ,S_NOD2ELS ,
7746 I SITAB ,SITABM1 ,FLAG_ELEM_INTER25 ,LIST_NIN25 ,IRESP )
7747 IF(IDDLEVEL == 0) CALL STOPTIME(12,1)
7748 IF(IDDLEVEL == 1) CALL STOPTIME(13,1)
7752.AND.
IF(IPARI(NPARI*(I-1)+7)==25IPARI(NPARI*(I-1)+100)>0) THEN
7753 IDEL_SOLID = IDEL_SOLID + 1
7756 IF(IDEL_SOLID == 0) INTERFACES%PARAMETERS%INT25_EROSION_SOLID = 0
7758 DEALLOCATE (FLAG_ELEM_INTER25)
7759 DEALLOCATE (LIST_NIN25)
7761 DEALLOCATE (T2_NB_CONNEC)
7765 IF(IDDLEVEL==1) THEN
7771.AND.
IF(LXINTD>0NSPMD>1)THEN
7772 IF(LIXINT+LXINTD > INTER_CAND%S_IXINT_2)THEN
7773 CALL UPGRADE_IXINT(INTER_CAND,NELEMINT,LXINTD)
7776 CALL UPDATE_WEIGHT_RBE3(NELEMINT,LIXINT,SLRBE3,NRBE3L,NRBE3,
7777 . LRBE3,IRBE3,INTER_CAND)
7782 D(1:3*NUMNOD) = XTMP(1:3*NUMNOD)
7786 ELSEIF(IDDLEVEL == 0) THEN !NINTER = 0
7789 ALLOCATE(INTSTAMP(0))
7791 !--------------------------------------------!
7792 ! NEW INTERFACE BUFFER STRUCTURE ALLOCATION
7793 !--------------------------------------------!
7794 ALLOCATE(INTBUF_TAB(0), STAT=Stat)
7795 !--------------------------------------------!
7803 ERR_MSG='rigid walls
'
7804 ERR_CATEGORY='rigid walls
'
7805 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7806 SNPRW = NRWALL*NNPRW
7807 SIWORK = NRWALL*NUMNOD
7809 IF(IDDLEVEL==0) THEN
7810 ALLOCATE(NPRW(SNPRW) ,STAT=stat)
7812 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
7816 SRWBUF = NRWLP*NRWALL
7818 SRWORK = 3*NUMNOD*NRWALL+SRWBUF
7819 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
7825 WRITE(ISTDO,'(a)
')TITRE(39)
7827 1 RWORK ,NPRW ,IWORK ,SLPRW ,MS ,
7828 2 V ,ITAB ,ITABM1 ,X ,IXS ,
7829 3 IXQ ,NPC1 ,D ,IGRNOD ,
7830 4 SRWBUF ,IMERGE ,UNITAB ,
7831 5 IKINE1LAG,IDDLEVEL ,LSUBMODEL ,RTRANS ,
7832 6 NOM_OPT(LNOPT1*INOM_OPT(5)+1),ITAGND ,SLN_PEN )
7836 IF(IDDLEVEL==0) THEN
7837 ALLOCATE(LPRW(SLPRW) ,STAT=stat)
7838 CALL MY_ALLOC(RWSTIF_PEN,SLN_PEN)
7841 LPRW = IWORK(1:SLPRW)
7843 IF(IDDLEVEL==0) THEN
7844 ALLOCATE(RWBUF(SRWBUF) ,STAT=stat)
7846 CALL ANCMSG(MSGID=727,
7852 RWBUF = RWORK(1:SRWBUF)
7854 IF(ALLOCATED(RWSAV)) DEALLOCATE(RWSAV)
7855 ALLOCATE(RWSAV(SRWSAV) ,STAT=stat)
7861 ERR_MSG='added masses
'
7862 ERR_CATEGORY='added masses
'
7863 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7865 WRITE(ISTDO,'(a)
')TITRE(43)
7866 IF(IDDLEVEL==0) THEN
7867 ALLOCATE(IPMAS(NODMAS),STAT=stat)
7868 IPMAS(1:NODMAS)%NPART = 0
7869 IPMAS(1:NODMAS)%WEIGHT_FLAG = 0
7870 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
7878 . MS ,ITABM1 ,IGRNOD ,UNITAB ,IGRSURF,
7879 . IPART ,IPMAS ,TOTADDMAS,FLAGG ,IGRPART,
7885 . MS ,ITABM1 ,IGRNOD ,UNITAB ,IGRSURF,
7886 . IPART ,IPMAS ,TOTADDMAS,FLAGG ,IGRPART,
7889 IF(NS10E>0) CALL ADDMAST10(ICNDS10, MS )
7892 IF(IDDLEVEL==0) THEN
7900 ERR_MSG='rigid entities
'
7901 ERR_CATEGORY='rigid body
'
7902 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7903 CALL HM_PREREAD_RBODY (SLPBY ,IGRNOD ,LSUBMODEL)
7904 CALL PREREAD_RBODY_LAGMUL(SLPBYL ,IGRNOD ,LSUBMODEL)
7905 CALL HM_PREREAD_MERGE(SMGRBY, SLPBY, IGRNOD, LSUBMODEL)
7906 SNPBY = NNPBY*NRBYKIN
7907 SNPBYL = NNPBY*NRBYLAG
7908 SNRBODY = SNPBY + SNPBYL
7909 SLRBODY = SLPBY + SLPBYL
7911 IF(IDDLEVEL==0) THEN
7912 IF(ALLOCATED(NPBY)) DEALLOCATE(NPBY)
7913 IF(ALLOCATED(LPBY)) DEALLOCATE(LPBY)
7914 IF(ALLOCATED(RBY)) DEALLOCATE(RBY)
7915 ALLOCATE(NPBY(SNRBODY),STAT=stat)
7916 ALLOCATE(LPBY(SLRBODY),STAT=stat)
7917 ALLOCATE(RBY(SRBY) ,STAT=stat)
7919 IF(NRBMERGE > 0) THEN
7920 ALLOCATE(MGRBY(NMGRBY*SMGRBY),STAT=stat)
7922 ALLOCATE(MGRBY(0),STAT=stat)
7928 IF(SNPBY<SNRBODY) THEN
7929 NPBYL => NPBY(SNPBY+1:SNRBODY)
7933 IF(SLPBY<SLRBODY) THEN
7934 LPBYL => LPBY(SLPBY+1:SLRBODY)
7938 IF(NRBY *NRBYKIN<SRBY) THEN
7939 RBYL => RBY(NRBY *NRBYKIN+1:SRBY)
7944 IF(NRBODY > 0) WRITE(ISTDO,'(a)
')TITRE(41)
7945 IF(NRBYKIN > 0) THEN
7947 1 RBY ,NPBY ,LPBY ,ITAB ,ITABM1 ,
7948 2 IGRNOD ,IGRSURF ,IBFV ,IGRV ,LGRAV ,
7949 3 SENSORS ,IMERGE ,UNITAB ,ISKWN ,NOM_OPT ,
7950 4 SLRBODY ,KNOD2ELS,KNOD2ELC,KNOD2ELTG,KNOD2EL1D,
7951 5 KNOD2ELQ ,ITAGND ,ICNDS10 ,LSUBMODEL,ICFIELD ,
7957 IF(NRBMERGE > 0) THEN
7959 . MGRBY,SMGRBY ,NPBY,LPBY ,SLRBODY,
7960 . RBY ,NOM_OPT,INOM_OPT(30),IGRNOD ,
7961 . ITAB ,ITABM1 ,LGRAV ,IGRV ,
7967 IF(NRBYKIN > 0) THEN
7968 call hierarchy_rbody(NRBYKIN ,NNPBY ,NPBY ,SLRBODY ,LPBY ,
7969 . NRBY ,RBY ,NUMNOD,IOUT )
7974 IF(NRBYKIN > 0) THEN
7976 1 RBY ,NPBY ,LPBY ,ITAB ,
7977 2 D ,IDDLEVEL,NOM_OPT,SLRBODY)
7982 IF(NRBYLAG > 0) THEN
7983 CALL HM_READ_RBODY_LAGMUL(RBYL ,NPBYL ,LPBYL ,IGRNOD ,LSUBMODEL ,
7984 . ITAB ,ITABM1 ,D ,IKINE1LAG,NOM_OPT)
7991 IF(NINTSTAMP/=0)THEN
7992 ERR_MSG='interfaces type21
'
7993 ERR_CATEGORY='interfaces
'
7994 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
7996 CALL LECSTAMP(IPARI ,INTSTAMP ,UNITAB, NPBY,
7997 . ICODE ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),LSUBMODEL)
8004 ERR_CATEGORY='internal
'
8007 + CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
8009 + CALL LCE16S4(IXS ,PM ,ICODE )
8028.AND.
IF((SEANI > 0)(IDDLEVEL==1)) EANI = 0
8035 ERR_MSG='madymo interfaced fem
'
8036 ERR_CATEGORY='madymo interfaced fem
'
8037 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8039 SIWORK2 = MAX(NPART,NUMNOD,2*NUMNOD+NUMELC+NUMELTG+NUMELS)
8040 SIWORK = NPART+NUMNOD+2*(NUMELC+NUMELTG+NUMELS)
8042 ALLOCATE(IWORK(SIWORK+SIWORK2),STAT=stat)
8044 IF(SIWORK<SIWORK+SIWORK2) THEN
8045 IWORK2 => IWORK(SIWORK+1:SIWORK+SIWORK2)
8050 IF(ALLOCATED(ICONX)) DEALLOCATE(ICONX)
8052 WRITE(ISTDO,'(a)
')' .. fem interfaced to madymo
'
8053 CALL HM_READ_MADYMO_EXFEM(IWORK(7*NCONX+1),ITAB ,ITABM1 ,IPART ,IPARTC,
8054 . IPARTG ,IPARTS ,IXC ,IXTG ,IXS ,
8055 . IWORK2 ,GEO ,PM ,IWORK ,IGEO ,
8064 SMADFAIL= NUMELC+NUMELTG+NUMELS
8066 SIEXTAG = 2*NMADNOD+NMADSH4+NMADSH3+NMADSOL
8068 SIEXMAD = NMADPRT+NMADSH4+NMADSH3+NMADSOL+NMADNOD
8069 . + NUMELC+NUMELTG+NUMELS
8071 SICONX = 7*NCONX+SIEXMAD+SIEXTAG
8072 ALLOCATE(ICONX(SICONX),STAT=stat)
8074 DO I=1,7*NCONX+SIEXMAD
8079 ALLOCATE(ICONX(SICONX),STAT=stat)
8081 ICONX(1:7*NCONX)=IWORK(1:7*NCONX)
8084 IF(ALLOCATED(IWORK)) DEALLOCATE(IWORK)
8087.NOT.
IF( ALLOCATED(ICONX)) ALLOCATE(ICONX(0))
8092 ERR_MSG='flexible bodies
'
8093 ERR_CATEGORY='flexible bodies
'
8094 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8097 IF(NFXBODY == 0) THEN
8098 IF(IDDLEVEL==0) THEN
8099 ALLOCATE(FXBNOD(0),FXB_MATRIX(0),FXB_MATRIX_ADD(4,0))
8100 ALLOCATE(FXBGLM(0), FXBCPM(0) , FXBRPM(0),
8101 . FXBCPS(0) , FXBLM(0) , FXBFLS(0),
8102 . FXBDLS(0), FXBDEP(0), FXBVIT(0),
8103 . FXBACC(0), FXBMOD(0), FXBELM(0),
8104 . FXBSIG(0), FXBGRVI(0), FXBGRVR(0))
8106 ELSE IF(NFXBODY>0) THEN
8108 IF(IDDLEVEL==1) THEN
8124 IF(IDDLEVEL==0) THEN
8125 INQUIRE(IOLENGTH=RCLEN) FLREC6
8126 OPEN(UNIT=IFXM,STATUS='scratch
',
8127 . ACCESS='direct
',RECL=RCLEN)
8128 OPEN(UNIT=IFXS,STATUS='scratch
',
8129 . ACCESS='direct
',RECL=RCLEN)
8130 WRITE(ISTDO,'(a)
')TITRE(51)
8131 ALLOCATE(FXBNOD(LENNOD),FXB_MATRIX(LENMAT),FXB_MATRIX_ADD(4,LENMAT))
8134 CALL HM_READ_FXB1(NOM_OPT(LNOPT1*INOM_OPT(11)+1),FXBNOD,FXBIPM,FXB_MATRIX,FXB_MATRIX_ADD,
8135 . NMANIM,ITAB,ITABM1,FXBFILE_TAB,LSUBMODEL)
8141 NBMO=FXBIPM(AIPM+4)+FXBIPM(AIPM+17)
8142 FXBIPM(AIPM+19)=LENELM+1
8143 FXBIPM(AIPM+20)=LENSIG+1
8144 FXBIPM(AIPM+26)=LENGRVI+1
8145 FXBIPM(AIPM+27)=LENGRVR+1
8148 . FXBNOD(ANOD), NBNO, FXBIPM(AIPM+18), IBCL , IPRES ,
8149 . IXS , IXC , IXT , IXP , IXR ,
8150 . IXTG , IPARG , FXBTAG, NBMO, FXBIPM(AIPM+4),
8151 . NELS , NELC, NELTG, IGRV ,LGRAV ,
8152 . NLGRAV , IPARI , INTBUF_TAB , FXBIPM(AIPM+29), NELT,
8154 FXBIPM(AIPM+21)=NELS
8155 FXBIPM(AIPM+22)=NELC
8156 FXBIPM(AIPM+23)=NELTG
8157 FXBIPM(AIPM+34)=NELT
8158 FXBIPM(AIPM+35)=NELP
8160 FXBIPM(AIPM+25)=NLGRAV
8163 IF(IDDLEVEL==0) THEN
8164 ALLOCATE(FXBGLM(LENGLM), FXBCPM(LENCP) , FXBRPM(LENRPM),
8165 . FXBCPS(LENCP) , FXBLM(LENLM) , FXBFLS(LENFLS),
8166 . FXBDLS(LENDLS), FXBDEP(LENVAR), FXBVIT(LENVAR),
8167 . FXBACC(LENVAR), FXBMOD(LENMOD*6), FXBELM(LENELM),
8168 . FXBSIG(LENSIG), FXBGRVI(LENGRVI), FXBGRVR(LENGRVR))
8177 IF(FXBIPM(AIPM+4)>0) CALL FXBELNUM(
8178 . FXBNOD(ANOD), NBNO, IPARG , FXBTAG, FXBELM(ALM),
8179 . IXS , IXC , IXTG , IPARTS ,IPARTC ,
8180 . IPARTG , IXT , IXP , IPARTT ,IPARTP )
8183 CALL HM_READ_FXB2(FXBIPM, FXBRPM, FXBNOD, FXBGLM,
8184 . FXBCPM, FXBCPS, FXBLM, FXBFLS, FXBDLS,
8185 . FXBMOD, ITAB , ITABM1 , NOM_OPT(LNOPT1*INOM_OPT(11)+1),FXB_LAST_ADDRESS,
8189 ELSEIF(IDDLEVEL==0) THEN
8190 ALLOCATE(FXBNOD(0) , FXBMOD(0), FXBGLM(0), FXBGRVI(0),
8191 . FXBCPM(0) , FXBCPS(0), FXBLM(0) , FXBFLS(0) ,
8192 . FXBDLS(0) , FXBDEP(0), FXBVIT(0), FXBACC(0) ,
8193 . FXBRPM(0) , FXBELM(0), FXBSIG(0),
8198 ERR_MSG='eigen modes
'
8199 ERR_CATEGORY='eigen modes
'
8200 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8203 INQUIRE(IOLENGTH=RCLEN) FLREC6
8204 OPEN(UNIT=IEIGM,STATUS='scratch
',
8205 . ACCESS='direct
',RECL=RCLEN)
8207 WRITE(ISTDO,'(a)
')TITRE(52)
8208 CALL HM_PREREAD_EIG(IGRNOD ,NNT ,LSUBMODEL)
8212 IF(IDDLEVEL==0) THEN
8213 ALLOCATE(EIGIPM(NEIPM*NEIG), EIGIBUF(NNT))
8214 ALLOCATE(EIGRPM(NERPM*NEIG))
8220 CALL HM_READ_EIG(EIGIPM, EIGIBUF, EIGRPM, IGRNOD ,ITABM1 ,
8221 . UNITAB, LSUBMODEL)
8222 ELSEIF(IDDLEVEL==0) THEN
8223 ALLOCATE(EIGIPM(0), EIGIBUF(0))
8227 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8229 WRITE(6,*) "ERROR Deprecated Linear solver"
8231 ELSEIF(IDDLEVEL==0) THEN
8233 ALLOCATE(CEPTMP(0), NELDOM(0), ELDOM(0,0,0),
8240 ERR_MSG='composite shells
'
8241 ERR_CATEGORY='composite shells
'
8242 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8244 IF(IDDLEVEL==0) THEN
8245 IF(IPLYXFEM > 0) THEN
8246 ALLOCATE(MS_PLY0(NUMNOD*NPLYMAX),STAT=stat)
8247 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8251 ALLOCATE(ZI_PLY0(NUMNOD*NPLYMAX),STAT=stat)
8252 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8256 ALLOCATE(MSZ20(NUMNOD),STAT=stat)
8257 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8261 ALLOCATE(ITAGND_SHXFEM(NUMNOD),STAT=stat)
8262 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8264 . C1='itagnd_shxfem
')
8266 ALLOCATE(ITAGSH(NUMELC),STAT=stat)
8267 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8271 ALLOCATE(INOD_PXFEM(NUMNOD),STAT=stat)
8272 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8276 ALLOCATE(IEL_PXFEM(NUMELC),STAT=stat)
8277 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8282 ALLOCATE(MS_PLY0(0),ZI_PLY0(0),ITAGND_SHXFEM(0),
8283 . ITAGSH(0),INOD_PXFEM(0),IEL_PXFEM(0))
8284 ALLOCATE(MS_PLY(0),ZI_PLY(0),MSZ20(0))
8292 ERR_MSG='arrays allocation
for intia
'
8293 ERR_CATEGORY='internal
'
8294 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8297 IF(IDDLEVEL == 0) THEN
8298 ALLOCATE(MSC(NUMELC) ,STAT=stat)
8299 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8302 ALLOCATE(MSTG(NUMELTG) ,STAT=stat)
8303 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8306 ALLOCATE(INC(NUMELC) ,STAT=stat)
8307 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8310 ALLOCATE(INTG(NUMELTG) ,STAT=stat)
8311 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8314 ALLOCATE(PTG(3,NUMELTG) ,STAT=stat)
8315 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8318 IF(GLOB_THERM%ITHERM_FE > 0)THEN
8319 ALLOCATE(MCPC(NUMELC) ,STAT=stat)
8320 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8323 ALLOCATE(MCPTG(NUMELTG) ,STAT=stat)
8324 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8328 ALLOCATE(MCPC(0),MCPTG(0))
8342 IF(IDDLEVEL == 0) THEN
8343 IF(IREST_MSELT/=0)THEN
8344 ALLOCATE(MSSA(NUMELS) ,STAT=stat)
8345 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8348 ALLOCATE(MSRT(NUMELR) ,STAT=stat)
8349 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
8353 ALLOCATE(MSSA(0) ,STAT=stat)
8354 ALLOCATE(MSRT(0) ,STAT=stat)
8358 ALLOCATE(STIFINT(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8359 ALLOCATE(STIFINTR(NUMNOD) ,STAT=stat)
8361 ALLOCATE(STIFINT(0) ,STAT=stat)
8362 ALLOCATE(STIFINTR(0) ,STAT=stat)
8365 IF(IRIGID_MAT > 0) THEN
8366 ALLOCATE(SLNRBM(NUMNOD) ,NSLNRBM(NUMNOD))
8367 ALLOCATE( RMSTIFN(NUMNOD), RMSTIFR(NUMNOD))
8369 ALLOCATE( SLNRBM(0),NSLNRBM(0),RMSTIFN(0), RMSTIFR(0))
8370 ALLOCATE( FRONT_RM(0))
8373 ALLOCATE(FXANI(2,NMANIM), MBUFEL(LBUFEL,NMANIM),
8374 . MDEPL(3*NUMNOD,NMANIM))
8375 ALLOCATE(STIFFN(NUMNOD*2) ,STAT=stat)
8382 IF(NUMNOD > 0) STIFFN = EM20
8386 ! still need for *Y00, *sty files - not yet covered by CFG files (hm_reader)
8387 IF(IDDLEVEL == 0) CALL YCTRL(IGRBRIC)
8389 IF (IDDLEVEL == 0) CALL HM_YCTRL(UNITAB,LSUBMODEL,IGRBRIC,IXC,IXTG, PTSHEL,PTSH3N,NUSPHCEL)
8396.OR..OR..AND.
IF((IDDLEVEL == 1)(ISMS_SELEC >= 3)((NINTER == 0)(ISMS == 0))) THEN
8402 ERR_MSG='element buffer initialization
'
8403 ERR_CATEGORY='internal
'
8404 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8405 WRITE(ISTDO,'(a)
')TITRE(45)
8406 NUMEL=2*(NUMELC+NUMELQ+NUMELT+NUMELS+NUMELP+NUMELR+
8407 & NUMELTG+NUMELX+NUMSPH+NUMELIG3D)
8414 ALLOCATE(ELBUF_TAB(NGROUP), STAT=Stat)
8416 CALL ELBUF_INI(ELBUF_TAB,MAT_ELEM%MAT_PARAM,
8417 . MLAW_TAG ,PROP_TAG ,FAIL_TAG ,
8418 . IGEO ,IPM ,IPARG ,IPART ,
8419 . IPARTSP ,IXS ,IXQ ,IXC ,IXTG ,
8420 . FLAG_XFEM,IPARTIG3D,STACK ,IGEO_STACK ,
8421 . IXT ,IXP ,IXR ,KXX ,GEO ,
8422 . EOS_TAG ,ISTR_24 ,IPRI ,DEFAULTS)
8426 IF(ICRACK3D > 0) THEN
8429 ALLOCATE(XFEM_TAB(NGROUP,NXEL), STAT=Stat)
8432 CALL ELBUF_INI(XFEM_TAB(1:NGROUP,IXEL),MAT_ELEM%MAT_PARAM,
8433 . MLAW_TAG ,PROP_TAG ,FAIL_TAG ,
8434 . IGEO ,IPM ,IPARG ,IPART ,
8435 . IPARTSP ,IXS ,IXQ ,IXC ,IXTG ,
8436 . FLAG_XFEM ,IPARTIG3D,STACK ,IGEO_STACK,
8437 . IXT ,IXP ,IXR ,KXX ,GEO ,
8438 . EOS_TAG ,ISTR_24 ,IPRI ,DEFAULTS)
8441 ALLOCATE(XFEM_TAB(0,0), STAT=Stat)
8446 CALL CHECK_PTHICKFAIL(ELBUF_TAB,MAT_ELEM%MAT_PARAM ,IPARG ,GEO ,
8447 . IPM ,STACK ,IGEO ,NUMMAT ,NUMGEO ,
8448 . NGROUP ,NPARG ,NPROPMI ,NPROPGI ,NPROPG )
8452 CALL CHECK_MAT_ELEM_PROP_COMPATIBILITY(
8453 . ELBUF_TAB,IPARG ,IPM ,IGEO ,NUMMAT ,NUMGEO ,
8454 . NGROUP ,NPARG ,NPROPMI ,NPROPGI ,MAT_ELEM%MAT_PARAM ,
8455 . N2D ,IXT ,NUMELT ,IXP ,NUMELP ,IXR ,
8456 . NUMELR ,KXX ,NUMELX )
8462 CALL CHK_DTTSH(ELBUF_TAB,IXS ,IPARG ,D )
8464!-------ini of shell offset treatment
8465 IF (DEFAULTS%SHELL%IOFFSET>0) THEN
8466 IF (DEFAULTS%SHELL%IOFFSET==1) CALL INTER_OFFSET_ITAG(
8467 . NINTER, IPARI, NPARI, IGRSURF,
8468 . NSURF, NUMELC, NUMELTG, ITAGOSET)
8469 CALL SHELL_OFFSET_INI(
8470 . NGROUP, NPARG, IPARG, NPROPG,
8471 . NUMGEO, GEO, NUMELC, NUMELTG,
8472 . NPROPGI, IGEO, ITAGOSET, ELBUF_TAB,
8483 LSIGI = MAX (NUMELS+NUMELQ,NUMSOL+NUMQUAD)
8498 IF(NUBEAM > 0) NSIGBEAM = NSIGBEAM + NUBEAM
8499 IF(IUSHELL/=0) NSIGSH = NSIGSH + NUSHELL
8500 IF(IORTSHEL/=0) NSIGSH = NSIGSH + NORTSHEL
8501 IF(NVSHELL1/=0)NSIGSH = NSIGSH + NVSHELL1
8502 IF(NVSHELL2 /= 0)NSIGSH = NSIGSH + NVSHELL2 + 3
8503 IF(NUSPHCEL /= 0)NSIGSPH = NSIGSPH + NUSPHCEL
8504 NSIGI= NVSOLID1 + NVSOLID2 + NVSOLID3 + NUSOLID + 4 + NVSOLID4 +
8505 . NVSOLID5 + NVSOLID6 + 7
8508.OR..OR.
IF(IABS(ISIGI) == 3 IABS(ISIGI) == 4
8509 . IABS(ISIGI) == 5) THEN
8510 LSIGSH = NUMSHEL+NUMSH3N
8511 LSIGSP = MAX(NUMSOL+NUMQUAD,NUMELS+NUMELQ)
8517 LSIGSH = NUMELC+NUMELTG
8518 LSIGSP = NUMELS+NUMELQ
8526.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8527 IMAX = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,
8528 . NUMELTG,NUMSOL,NUMQUAD,NUMSHEL,NUMSH3N,
8529 . NUMSPHY,NUMSPRI,NUMBEAM,NUMTRUS)
8531 IMAX = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,
8532 . NUMELTG,NUMELIG3D)
8536.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8537 JMAX=MAX(NUMELC,NUMSOL,NUMQUAD,NUMSHEL,NUMSH3N,NUMSPHY,
8538 . NUMELR,NUMSPRI,NUMELP,NUMBEAM,NUMTRUS)
8544.OR..OR.
IF(ABS(ISIGI)==3ABS(ISIGI)==4ABS(ISIGI)==5)THEN
8545 ALLOCATE (PTSOL(NUMELS) ,STAT=stat)
8546 ALLOCATE (PTQUAD(NUMELQ) ,STAT=stat)
8547 ALLOCATE (PTSPH(NUMSPH) ,STAT=stat)
8548 ALLOCATE (PTSPRI(NUMELR) ,STAT=stat)
8549 ALLOCATE (PTBEAM(NUMELP) ,STAT=stat)
8550 ALLOCATE (PTTRUSS(NUMELT) ,STAT=stat)
8558 ALLOCATE (PTSOL(0) ,STAT=stat)
8559 ALLOCATE (PTQUAD(0) ,STAT=stat)
8560 ALLOCATE (PTSPH(0) ,STAT=stat)
8561 ALLOCATE (PTSPRI(0) ,STAT=stat)
8562 ALLOCATE (PTBEAM(0) ,STAT=stat)
8563 ALLOCATE (PTTRUSS(0) ,STAT=stat)
8568 CALL TET4_10(IGEO,ITET4_10)
8569.OR..OR..OR.
IF(NUMELS10/=0NUMELS16/=0NUMELS20/=0ITET4_10/=0) THEN
8574 ALLOCATE(MSS(8*NUMELS) ,STAT=stat)
8575 ALLOCATE(MSSX(ICO*NUMELS) ,STAT=stat)
8576 ALLOCATE(MSSF(8*NUMELS*MAX(IALE,IEULER,IALELAG)) ,STAT=stat)
8577 ALLOCATE(MSQ(NUMELQ) ,STAT=stat)
8578.NOT.
IF(ALLOCATED(MSTR)) ALLOCATE(MSTR(NUMELT) ,STAT=stat)
8579.NOT.
IF(ALLOCATED(MSP)) ALLOCATE(MSP(NUMELP) ,STAT=stat)
8580 ALLOCATE(MSR(NUMELR*3) ,STAT=stat)
8581 ALLOCATE(INP(NUMELP) ,STAT=stat)
8582 ALLOCATE(INR(NUMELR*3) ,STAT=stat)
8583 ALLOCATE(INS(NUMELS*8) ,STAT=stat)
8608 ALLOCATE(XELEMWA(MAXNX*16) ,STAT=stat)
8612.OR..OR..OR.
IF(NUMELS10/=0NUMELS16/=0NUMELS20/=0ITET4_10/=0) THEN
8615 ALLOCATE(VNS(NUMELS*8+NUMELIG3D*NCTRLMAX) ,STAT=stat)
8616 ALLOCATE(VNSX(NUMELS*ICO) ,STAT=stat)
8617 ALLOCATE(STC(NUMELC) ,STAT=stat)
8618 ALLOCATE(STT(NUMELT) ,STAT=stat)
8619 ALLOCATE(STP(NUMELP) ,STAT=stat)
8620 ALLOCATE(STR(NUMELR) ,STAT=stat)
8621 ALLOCATE(STTG(NUMELTG) ,STAT=stat)
8622 ALLOCATE(STUR(0) ,STAT=stat)
8623 ALLOCATE(BNS(NUMELS*8+NUMELIG3D*NCTRLMAX) ,STAT=stat)
8624 ALLOCATE(BNSX(NUMELS*ICO) ,STAT=stat)
8625 ALLOCATE(VNIGE(NUMELIG3D*NCTRLMAX) ,STAT=stat)
8626 ALLOCATE(BNIGE(NUMELIG3D*NCTRLMAX) ,STAT=stat)
8654 ALLOCATE(VOLNOD(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8655 ALLOCATE(BVOLNOD(NUMNOD+NUMFAKENODIGEO) ,STAT=stat)
8656 ALLOCATE(ETNOD(NUMNOD) ,STAT=stat)
8657 ALLOCATE(NSHNOD(NUMNOD) ,STAT=stat)
8665 ALLOCATE(VOLNOD(0) ,STAT=stat)
8666 ALLOCATE(BVOLNOD(0) ,STAT=stat)
8667 ALLOCATE(ETNOD(0) ,STAT=stat)
8668 ALLOCATE(NSHNOD(0) ,STAT=stat)
8672 ALLOCATE(STRC(NUMELC) ,STAT=stat)
8673 ALLOCATE(STRP(NUMELP) ,STAT=stat)
8674 ALLOCATE(STRR(NUMELR) ,STAT=stat)
8675 ALLOCATE(STRTG(NUMELTG) ,STAT=stat)
8681 ALLOCATE(INDEX(SINDEX) ,STAT=stat)
8682 ALLOCATE(ITRI(SITRI) ,STAT=stat)
8683 ALLOCATE(KSYSUSR(2*JMAX) ,STAT=stat)
8684 ALLOCATE(ISPTAG(NUMSPH) ,STAT=stat)
8685 IF(SINDEX > 0) INDEX = 0
8686 IF(SITRI > 0) ITRI = 0
8687 IF(JMAX > 0) KSYSUSR = 0
8688 IF(NUMSPH > 0) ISPTAG = 0
8691 ALLOCATE(IWA(NUMNOD),STAT=stat)
8693 ALLOCATE(IWA(0),STAT=stat)
8698 ERR_MSG='initialization
'
8699 ERR_CATEGORY='element initialization
'
8700 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8706 ALLOCATE(SIGI(NSIGS,LSIGI) ,STAT=stat)
8707 ALLOCATE(SIGSH(MAX(1,NSIGSH),MAX(1,LSIGSH)) ,STAT=stat)
8708 ALLOCATE(SIGSP(NSIGI,LSIGSP) ,STAT=stat)
8709 ALLOCATE(SIGSPH(NSIGSPH,LSIGSPH) ,STAT=stat)
8710 ALLOCATE(SIGRS(NSIGRS,LSIGRS) ,STAT=stat)
8711 ALLOCATE(SIGBEAM(NSIGBEAM,LSIGBEAM) ,STAT=stat)
8712 ALLOCATE(SIGTRUSS(NSIGTRUSS,LSIGTRUSS) ,STAT=stat)
8713 ALLOCATE(STRSGLOB(NUMELS) ,STAT=stat)
8714 ALLOCATE(STRAGLOB(NUMELS) ,STAT=stat)
8715 ALLOCATE(ORTHOGLOB(NUMELS) ,STAT=stat)
8717 IF(LSIGI > 0) SIGI = ZERO
8718 IF(LSIGSH > 0) SIGSH = ZERO
8719 IF(LSIGSP > 0) SIGSP = ZERO
8720 IF(LSIGSPH > 0) SIGSPH = ZERO
8721 IF(LSIGRS > 0) SIGRS = ZERO
8722 IF(LSIGBEAM > 0)SIGBEAM= ZERO
8723 IF(LSIGTRUSS > 0)SIGTRUSS= ZERO
8724 IF(NUMELS > 0) STRSGLOB = -1
8725 IF(NUMELS > 0) STRAGLOB = -1
8726 IF(NUMELS > 0) ORTHOGLOB = 0
8729.NOT.
IF( ALLOCATED(IDRAPE)) ALLOCATE(IDRAPE(0))
8731 CALL LEC_INISTATE( IXS ,IXQ ,IXC ,IXT ,
8732 1 IXP ,IXR ,GEO ,PM ,KXSP ,
8733 2 IXTG ,INDEX ,ITRI ,
8734 3 NSIGSH ,IGEO ,IPM ,NSIGS ,NSIGSPH ,
8735 4 KSYSUSR ,PTSHEL ,PTSH3N ,PTSOL ,PTQUAD ,
8736 5 PTSPH ,NUMEL ,NSIGRS ,UNITAB ,ISOLNOD ,
8737 6 LSUBMODEL,RTRANS ,IDRAPE ,NSIGI ,
8738 7 PTSPRI ,NSIGBEAM,PTBEAM ,NSIGTRUSS,PTTRUSS ,
8739 8 SIGI ,SIGSH ,SIGSP ,SIGSPH ,SIGRS ,
8740 9 SIGBEAM ,SIGTRUSS,STRSGLOB,STRAGLOB,ORTHOGLOB,
8741 A ISIGSH ,IYLDINI ,KSIGSH3 ,FAIL_INI,IUSOLYLD,
8742 B IUSERL ,IGRBRIC ,MAP_TABLES,IPARG ,STACK ,IWORKSH,
8743 C MAT_ELEM%MAT_PARAM,NUMSPH,NISP)
8749 ALLOCATE(DTELEM(2*NUMEL) ,STAT=stat)
8751 CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,
8754 IF(NUMEL > 0) DTELEM = ZERO
8758 CALL INITIA(IPARG , ELBUF , MS , IN , V ,
8759 & X , IXS , IXQ , IXC , IXT ,
8760 & IXP , IXR , DETONATORS , GEO , PM ,
8761 & RBY , NPBY , LPBY , NPC , NPTS ,
8762 & TF , VEUL , ALE_CONNECTIVITY , SKEW , FILL ,
8763 & IPART , ITAB , SENSORS , SKVOL ,
8764 & IXTG , THKE , NLOC_DMG , GROUP_PARAM_TAB ,GLOB_THERM,
8765 & IGRNOD , IGRSURF , BUFSF , VR ,
8766 & BUFMAT , XLAS , ILAS , DTELEM , MSS ,
8767 & MSQ , MSC , MSTR , MSP , MSR ,
8768 & MSTG , PTG , INC , NOD2ELTG , KNOD2ELTG,
8769 & INP , INR , INTG , INDEX ,
8770 & ITRI , KXX , IXX , XELEMWA ,
8771 & IWA , NOD2ELQ , KNOD2ELQ , NOD2ELS , KNOD2ELS ,
8772 & KXSP , IXSP , NOD2SP , ISPCOND , ICODE ,
8773 & ISKEW , ISKWN , ISPSYM , XFRAME , ISPTAG ,
8774 & SPBUF , MSSX , NSIGI ,
8775 & NPBYL , LPBYL , RBYL , MSNF , MSSF ,
8776 & NSIGSH , IGEO , IPM , NSIGS ,
8777 & NSIGSPH , VNS , VNSX , STC , STT ,
8778 & STP , STR , STTG , STUR , BNS ,
8779 & BNSX , VOLNOD , BVOLNOD , ETNOD , NSHNOD ,
8780 & STIFINT , FXBDEP , FXBVIT , FXBACC , FXBIPM ,
8781 & FXBRPM , FXBELM , FXBSIG , FXBMOD , INS ,
8782 & PTSHEL , PTSH3N , PTSOL , PTQUAD ,
8783 & WMA , PTSPH , FXBNOD , MBUFEL , MDEPL ,
8784 & FXANI , NUMEL , NSIGRS ,
8785 & SH4TREE , SH3TREE , MCP , TEMP ,
8786 & IMERGE2 , IADMERGE2 ,
8787 & SLNRBM , NSLNRBM , RMSTIFN , RMSTIFR ,
8788 & MS_PLY0 , ZI_PLY0 , ITAGND_SHXFEM , ITAGSH , MCPC ,
8789 & MCPTG , XREFC , XREFTG , XREFS , MSSA ,
8790 & MSRT , IRBE2 , LRBE2 , INIVOL , KVOL , NBSUBMAT,
8791 & IXS10 , IXS16 , IXS20 , TOTADDMAS ,
8792 & IPMAS , STIFFN , MSZ20 , ITAGN , SITAGE ,
8793 & ITAGE , IXR_KJ , ELBUF_TAB ,
8794 & NOM_OPT , INOM_OPT(13) , INOM_OPT(21) , INOM_OPT(20),
8795 & SOL2SPH , IRST , SH3TRIM , XFEM_TAB ,
8796 & KXIG3D , IXIG3D , MSIG3D , KNOT , NCTRLMAX,
8798 & RNOISE , DRAPE , SH4ANG , SH3ANG ,
8799 & GEO_STACK , IGEO_STACK , STIFINTR , STRC , STRP ,
8800 & STRR , STRTG , PERTURB , ITAGND , NATIV_SMS,
8801 & ILOADP , LOADP , PTSPRI , NSIGBEAM ,
8802 & PTBEAM , NSIGTRUSS , PTTRUSS ,
8803 & MULTI_FVM , SIGI , SIGSH , SIGSP ,
8804 & SIGSPH , SIGRS , SIGBEAM , SIGTRUSS , STRSGLOB ,
8805 & STRAGLOB , ORTHOGLOB , ISIGSH , IYLDINI , KSIGSH3 ,
8806 & FAIL_INI , IUSOLYLD , IUSERL , IDDLEVEL , INIMAP1D ,
8807 & INIMAP2D , FUNC2D , FVM_INIVEL , TAGPRT_SMS , IGRBRIC ,
8808 & IGRQUAD , IGRSH4N , IGRSH3N , IGRPART , TOTMAS ,
8809 & KNOTLOCPC , KNOTLOCEL , VNIGE , BNIGE , FXBGLM ,
8810 & FXBCPM , FXBCPS , FXBLM , FXBFLS , FXBDLS ,
8811 & FXB_MATRIX , FXB_MATRIX_ADD , FXB_LAST_ADDRESS , INOM_OPT(11) , R_SKEW ,
8812 & KNOD2EL1D , NOD2EL1D , EBCS_TAB , RBY_INIAXIS , ALEA ,
8813 & KNOD2ELC , NOD2ELC , DR , SLRBODY , DRAPEG ,
8814 & IPARI , INTBUF_TAB , INTERFACES , MAT_ELEM%MAT_PARAM ,
8815 & NPRELOAD_A , PRELOAD_A , FAIL_FRACTAL ,FAIL_BROKMANN ,DEFAULTS ,
8816 & NDAMP_FREQ_RANGE,DAMPR , IBEAM_VECTOR , RBEAM_VECTOR ,D ,
8817 & LSIGI ,LSIGSP , SRNOISE2 ,NPRW ,LPRW ,
8818 & RWSTIF_PEN ,SLN_PEN )
8821.AND.
IF(NINTER>0NUMELIG3D>0) THEN
8822 CALL FICTIVMASSIGEO(INTBUF_TAB,NCTRLMAX,MSIG3D ,KXIG3D)
8824 CALL BULKFAKEIGEO3(ELBUF_TAB,IPARG,PM,KXIG3D,IGRSURF,STIFINT)
8838 ERR_MSG='group entities buffer initialization
'
8839 ERR_CATEGORY='internal
'
8840 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8841!! WRITE(ISTDO,'(a)
')TITRE(45)
8843 CALL GROUP_INI(IGRNOD ,IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N,
8844 . IGRTRUSS ,IGRBEAM ,IGRSPRING ,IGRPART )
8845 CALL ISURF_INI(IGRSURF)
8846 CALL ISLIN_INI(IGRSLIN)
8856!! DEALLOCATE(SIGBEAM)
8857!! DEALLOCATE(SIGTRUSS)
8859 DEALLOCATE(STRSGLOB)
8860 DEALLOCATE(STRAGLOB)
8861 DEALLOCATE(ORTHOGLOB)
8863 IF(ALLOCATED(PTSHEL))DEALLOCATE(PTSHEL)
8864 IF(ALLOCATED(PTSH3N))DEALLOCATE(PTSH3N)
8876 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
8877 IF(ALLOCATED(TABCONPATCH)) DEALLOCATE(TABCONPATCH)
8906 IF (DEFAULTS%SHELL%IOFFSET==1) THEN
8907 DEALLOCATE(ITAGOSET)
8914.OR.
ENDIF !IF((IDDLEVEL == 1)(ISMS_SELEC >= 3))
8918.AND..OR.
IF((IDDLEVEL == 0)((NINTER > 0)(ISMS == 1))) THEN
8921 . '.. returns to domain decomposition
for optimization
'
8928 IF(IALE+IEULER/=0) CALL PAROI(PM ,IXS ,IXQ ,ICODE ,ALE_CONNECTIVITY%NALE )
8929 IF(NUMELS/=0) CALL LCE16S4(IXS ,PM ,ICODE )
8940 IF(ISMS_SELEC >= 3) THEN
8946 CALL DEALLOCATE_ELBUF(
8947 . ELBUF_TAB, IGEO ,IPARG ,IXS ,IXC ,IXTG ,
8948 . FLAG_XFEM, IXT ,IXP ,IXR ,KXX )
8949 DEALLOCATE(ELBUF_TAB)
8951 IF(ICRACK3D > 0) THEN
8954 CALL DEALLOCATE_ELBUF(
8955 . XFEM_TAB(1:NGROUP,IXEL),IGEO ,IPARG ,IXS ,IXC ,IXTG ,
8956 . FLAG_XFEM ,IXT ,IXP ,IXR ,KXX )
8972 ERR_CATEGORY='interfaces
'
8973 CALL CHKTYP2 (IPARI, ITAB ,
8974 . NOM_OPT(LNOPT1*INOM_OPT(3)+1),INTBUF_TAB,NATIV_SMS)
8978 CALL FAILWAVE_INIT(FAILWAVE,IPARG,IXC,IXTG,NUMNOD)
8985 ERR_MSG='rigid materials
'
8986 ERR_CATEGORY='rigid materials
'
8987 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
8988 IF(IRIGID_MAT > 0) THEN
8992 ALLOCATE(RBYM(NFRBYM*NRBYM),IRBYM(NRBYM*NIRBYM),LNRBYM(NGSLNRBYM))
8997 CALL RIGID_MAT(NRBYM ,NGSLNRBYM ,SLNRBM, NSLNRBM ,RMSTIFN,
8998 . RMSTIFR ,X ,V ,MS , IN ,
8999 . RBYM ,IRBYM ,LNRBYM ,NOM_OPT)
9001 LEN_RM = NRBYM*NSPMD
9002 ALLOCATE(FRONT_RM(LEN_RM))
9004 ALLOCATE(WEIGHT_RM(NRBYM))
9007 ALLOCATE( RBYM(0),IRBYM(0),LNRBYM(0), WEIGHT_RM(0))
9010 ERR_MSG='deallocation
'
9011 ERR_CATEGORY='internal
'
9012 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9013 DEALLOCATE(SLNRBM,NSLNRBM,RMSTIFN,RMSTIFR )
9015 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
9016 IF(ALLOCATED(ITAG)) DEALLOCATE(ITAG)
9021 ERR_MSG='xfem
for composit
'
9022 ERR_CATEGORY='xfem
for composit
'
9023 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9024 IF(IPLYXFEM > 0) THEN
9028 IF(ITAGND_SHXFEM(I) > 0 )THEN
9029 NPLYXFE = NPLYXFE + 1
9030 INOD_PXFEM(I) = NPLYXFE
9035 IF(ITAGSH(I) > 0) THEN
9036 EPLYXFE = EPLYXFE + 1
9037 IEL_PXFEM(I) = EPLYXFE
9040 ALLOCATE(MS_PLY(NPLYXFE*NPLYMAX),STAT=stat)
9041 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
9045 ALLOCATE(ZI_PLY(NPLYXFE*NPLYMAX),STAT=stat)
9046 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
9051 ALLOCATE(MSZ2(NPLYXFE),STAT=stat)
9052 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
9057 CALL PREPLYXFEM(MS_PLY0,ZI_PLY0,IEL_PXFEM,INOD_PXFEM,IXC,
9058 . MS_PLY,ZI_PLY,ADDCNE_PXFEM,MSZ20,MSZ2)
9059 LCNE_PXFEM = ADDCNE_PXFEM(NPLYXFE+1) - 1
9060 ALLOCATE(CNE_PXFEM(LCNE_PXFEM),CEL_PXFEM(EPLYXFE))
9064 CALL FILLCNE_PXFEM(IEL_PXFEM,INOD_PXFEM,IXC,CEP,ADDCNE_PXFEM,
9065 . CNE_PXFEM, CEL_PXFEM)
9069 DEALLOCATE(MS_PLY0,ZI_PLY0,MSZ20,ITAGSH)
9070 DEALLOCATE(ITAGND_SHXFEM)
9075 IF (NDAMP_VREL_RBY > 0) THEN
9076 CALL damping_rby_spmdset(IGRNOD,NGRNOD,NDAMP,NRDAMP,DAMPR,NNPBY,
9077 . NRBODY,NPBY,NRBMERGE)
9083 ERR_MSG='xfem
for shells
'
9084 ERR_CATEGORY='xfem
for shells
'
9085 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9088 ALLOCATE(CRKLVSET(NLEVMAX) ,STAT=stat)
9089 ALLOCATE(CRKSHELL(NLEVMAX) ,STAT=stat)
9090 ALLOCATE(CRKSKY(NLEVMAX) ,STAT=stat)
9091 ALLOCATE(CRKAVX(NLEVMAX) ,STAT=stat)
9092 ALLOCATE(INDX_CRK(NLEVMAX) ,STAT=stat)
9094 INDX_CRK = 0 ! For Anim
9095 NCRKPART = 0 ! Nombre des parts xfem (local proc)
9096 NCRKXFE = 0 ! number of xfem nodes
9097 ECRKXFE = 0 ! number of xfem elements
9098 ECRKXFEC = 0 ! Nombre des shells 4N xfem
9099 ECRKXFETG= 0 ! Nombre des shells 3N xfem
9101 IF(ICRACK3D > 0) THEN
9103 IF(ICRACK3D == 1) THEN
9104 WRITE(ISTDO,'(a)
')' .. xfem multi-layer shell
'
9105 ELSEIF(ICRACK3D == 2)THEN
9106 WRITE(ISTDO,'(a)
')' .. xfem mono-layer shell
'
9107 ELSEIF(ICRACK3D == 3)THEN
9108 WRITE(ISTDO,'(a)
')' .. xfem mixed mono/multi-layer shell
'
9116 CALL PRETAG_XFEM(IPARG ,ITAGE ,IEL_CRKXFEM,ITAGN ,INOD_CRKXFEM)
9119 CALL PRECRKXFEM(IPARG ,IXC ,IXTG ,NCRKXFE ,
9120 . IEL_CRKXFEM ,INOD_CRKXFEM ,ADDCNE_CRKXFEM)
9123 LCNE_CRKXFEM = ADDCNE_CRKXFEM(NCRKXFE+1) - 1 ! Table length Sky CNE_CRKXFEM
9124 ALLOCATE(CRKNODIAD(LCNE_CRKXFEM) ,STAT=stat)
9125 ALLOCATE(CNE_CRKXFEM(LCNE_CRKXFEM) ,STAT=stat)
9126 ALLOCATE(CEL_CRKXFEM(ECRKXFE) ,STAT=stat)
9127 ALLOCATE(CEP_CRKXFEM(ECRKXFE) ,STAT=stat)
9128 ALLOCATE(NODLEVXF(NCRKXFE) ,STAT=stat)
9129 ALLOCATE(CRKEDGE(NXLAYMAX) ,STAT=stat)
9130 ALLOCATE(XFEM_PHANTOM(NXLAYMAX) ,STAT=stat)
9131 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='nodlevxf')
9135 CEP_CRKXFEM = 0 ! Proc num of each xfem element
9139 CALL FILLCNE_XFEM(LCNE_CRKXFEM,IPARG,
9140 . IEL_CRKXFEM ,INOD_CRKXFEM ,IXC ,IXTG ,CEP ,
9141 . ADDCNE_CRKXFEM,CNE_CRKXFEM ,CEL_CRKXFEM,CEP_CRKXFEM,CRKNODIAD)
9143 CALL XFEM_CRACK_INIT(IPARG ,IXC ,IXTG ,INOD_CRKXFEM,NODLEVXF,
9144 . INDX_CRK,NCRKPART,CRKSHELL)
9146 DEALLOCATE(ITAGN,ITAGE)
9148 SNODGLOBXFE = 4*ECRKXFE*NLEVMAX ! NB max of Phant nodes, all folds.fake
9150 NUMEDGES = 0 ! number of global edges (same for all plies)
9151 SIEDGESH = 4*ECRKXFEC + 3*ECRKXFETG
9153 ALLOCATE(IEDGESH(SIEDGESH),STAT=stat)
9154 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedgesh')
9155 ALLOCATE(IBORDEDGE(SIEDGESH) ,STAT=stat)
9156 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='ibordedge
')
9157 ALLOCATE(NODEDGE(2*SIEDGESH),STAT=stat)
9158 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='nodedge')
9159 ALLOCATE(IEDGE(SIEDGESH),STAT=stat)
9160 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedge')
9161 ALLOCATE(IEDGE_TMP0(SIEDGESH),STAT=stat)
9162 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,MSGTYPE=MSGERROR,C1='iedge_tmp0
')
9169 IF(ECRKXFEC > 0) THEN
9170 IEDGESH4 => IEDGESH(1:4*ECRKXFEC)
9171 IELCRK4 => IEL_CRKXFEM(1:NUMELC)
9174 IELCRK4 => IEL_CRKXFEM
9177 IF(ECRKXFETG > 0) THEN
9178 IEDGESH3 => IEDGESH(1+4*ECRKXFEC:SIEDGESH)
9179 IELCRK3 => IEL_CRKXFEM(1+NUMELC:NUMELC+NUMELTG)
9182 IELCRK3 => IEL_CRKXFEM
9186 . IBORDNODE ,IXC ,IXTG ,IEDGESH4 ,IEDGESH3 ,
9187 . IBORDEDGE ,NODEDGE ,IELCRK4 ,IELCRK3 ,IEDGE ,
9188 . CEP_CRKXFEM,IEDGE_TMP0)
9190 CALL ALLOCXFEM(IXC ,IXTG ,IPARG ,LCNE_CRKXFEM,CRKLVSET,
9191 . CRKSKY ,CRKAVX,CRKEDGE,XFEM_PHANTOM)
9193 IF(NINICRACK > 0) ! initial cracks
9194 . CALL INICRKFILL (ELBUF_TAB,XFEM_TAB,
9195 . IXC ,IXTG ,IPARG ,INICRACK,
9196 . X ,IEL_CRKXFEM,INOD_CRKXFEM,XREFC ,XREFTG ,
9197 . IEDGESH4 ,IEDGESH3,NODEDGE ,CRKLVSET,
9198 . CRKSHELL,CRKEDGE ,XFEM_PHANTOM ,ITAB )
9200 ALLOCATE(IEDGE_TMP(3,NUMEDGES),STAT=stat)
9201 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9202 . MSGTYPE=MSGERROR,C1='iedge_tmp
')
9203 IF(NUMEDGES > 0) THEN
9207 IEDGE_TMP(3,I) = IEDGE_TMP0(I)
9210 DEALLOCATE(IEDGE_TMP0)
9212 ALLOCATE(ELCUTC(2*(NUMELC+NUMELTG)) ,STAT=stat)
9213 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9214 . MSGTYPE=MSGERROR,C1='elcutc')
9217 ALLOCATE(NODENR(NCRKXFE) ,STAT=stat)
9218 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9219 . MSGTYPE=MSGERROR,C1='nodenr')
9222 ALLOCATE(KXFENOD2ELC(NCRKXFE) ,STAT=stat)
9223 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9227 ALLOCATE(ENRTAG(NUMNOD*IENRNOD) ,STAT=stat)
9228 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANSTOP,
9229 . MSGTYPE=MSGERROR,C1='enrtag')
9236 ALLOCATE(CNE_CRKXFEM(0),CEL_CRKXFEM(0),CEP_CRKXFEM(0))
9237 ALLOCATE(IEDGESH(0))
9238 ALLOCATE(IBORDEDGE(0))
9239 ALLOCATE(NODEDGE(0))
9241 ALLOCATE(IEDGE_TMP(0,0))
9242 ALLOCATE(CRKNODIAD(0))
9243 ALLOCATE(NODLEVXF(0))
9244 ALLOCATE(CRKEDGE(0))
9248 ALLOCATE(KXFENOD2ELC(0))
9250 ENDIF ! ICRACK3D > 0 (Xfem)
9256 ERR_MSG='rigid body element deactivation
'
9257 ERR_CATEGORY='rigid body
'
9258 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9259 CALL SETELOFF2(IXS ,IXC ,IXT ,IXP ,IXR ,
9260 2 IXTG ,IPARG ,ISOLOFF,ISHEOFF,
9261 3 ITRUOFF,IPOUOFF,IRESOFF,ITRIOFF,IGRNRB2,
9266 CALL SETELOFF(IXS ,IXC ,IXT ,IXP ,IXR ,
9267 2 IXTG ,IPARG , ISOLOFF,ISHEOFF,
9268 3 ITRUOFF,IPOUOFF,IRESOFF,ITRIOFF,IGRNRBY,
9269 4 IGRNOD ,ELBUF_TAB,IQUAOFF,IXQ )
9274 ERR_MSG='stamping initialization
'
9275 ERR_CATEGORY='interfaces
'
9276 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9279 AUX = MAX( NUMNOD , NUMELT+NUMELP+NUMELR+NUMELTG+NUMELC+100 ,
9281 NS_I21 = 2*NUMNOD + 2002 + 4*AUX
9283 SRWORK = MAX(6000,NUMNOD)
9284 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
9285 ALLOCATE(RWORK(SRWORK) ,STAT=stat)
9289 CALL ININTR_THKVAR(ELBUF_TAB,
9290 1 IPARI ,INTBUF_TAB ,INSCR ,X ,
9291 2 IXS ,IXC ,PM ,GEO ,ITAB ,
9292 3 IWORK ,RWORK ,IXTG ,D ,
9294 5 KNOD2ELC,KNOD2ELTG,NOD2ELS,NOD2ELC ,NOD2ELTG,
9295 6 INTSTAMP,SKEW ,MS ,IN ,V ,
9296 7 VR ,RBY ,NPBY ,LPBY ,IPARTS ,
9297 8 IPARTC ,IPARTG,THK_PART,NOM_OPT,INOM_OPT(3))
9304 DEALLOCATE(THK_PART)
9309 CALL SET_INTERCEP(IPARI,INTERCEP,0,INTBUF_TAB,ITAB,CEP) ! this call is maintained here to avoid a bug
9314 CALL I24SETNODES(IPARI,INTBUF_TAB,INTERCEP,ITAB,I24MAXNSNE)
9320 ERR_MSG='interfaces stiffness
'
9321 ERR_CATEGORY='interfaces
'
9322 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9324 IF (I7STIFS/=0) THEN
9325 CALL STIFINT_ICONTROL(
9326 1 NUMNOD, STIFINT, NPARI, NINTER,
9327 2 IPARI, NPROPGI, NUMGEO, IGEO,
9328 3 NUMELS, NIXS, IXS, NUMELS8,
9329 4 NUMELS10, IXS10, NUMELS16, IXS16,
9330 5 NUMELS20, IXS20, NPROPM, NUMMAT,
9332 CALL ININTR1 (IPARI ,STIFINT, INTBUF_TAB ,STFAC)
9339.AND..AND.
IF(NINTER > 0 NINTERFRIC >0 IORTHFRICMAX > 0) THEN
9341 CALL ININTR_ORTHDIRFRIC(
9342 A IPARI ,INTBUF_TAB,INTBUF_FRIC_TAB,IGEO ,GEO ,
9343 B X , IXTG ,IXC ,IPARTG , IPARTC ,
9344 C PFRICORTH,IREPFORTH,PHIFORTH , VFORTH ,KNOD2ELC ,
9345 D KNOD2ELTG,NOD2ELTG ,NOD2ELC ,IWORKSH ,PM ,
9346 E STACK%PM ,THKE ,SKEW ,ITAB ,IPART )
9352 DEALLOCATE(TAGPRT_FRIC)
9356 ERR_MSG='laser impact phase 2
'
9358 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9360 CALL LASERP3(ILAS ,IPARG )
9367 ERR_CATEGORY='rivets
'
9368 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9370 SRIVET = NRIVET*NRIVF
9371 ALLOCATE(LRIVET(SLRIVET) ,STAT=stat)
9372 ALLOCATE(RIVET(SRIVET) ,STAT=stat)
9377 WRITE(ISTDO,'(a)
') ' .. rivets
'
9378 CALL HM_READ_RIVET(LRIVET ,V ,VR ,MS ,IN ,
9379 2 RIVET ,GEO ,ITAB ,ITABM1 ,D ,
9380 3 IPART ,IGEO ,LSUBMODEL)
9387 IF(NB_SEATBELT_SHELLS /= 0)THEN
9388 CALL MY_ALLOC(SEATBELT_SHELL_TO_SPRING,NUMELC,2)
9390 SEATBELT_SHELL_TO_SPRING(1:NUMELC,1) = 0
9391 SEATBELT_SHELL_TO_SPRING(1:NUMELC,2) = 0
9394 DO I=1,NB_SEATBELT_SHELLS
9397 IF(SEATBELT_CONVERTED_ELEMENTS(2,I) /= 0) THEN
9398 L0 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(1,I),MAP_TABLES%ISH4NM,NUMELC)
9402 IF(SEATBELT_CONVERTED_ELEMENTS(2,I) /= 0) THEN
9403 L1 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(2,I),MAP_TABLES%ISPRINGM,NUMELR)
9407 IF(SEATBELT_CONVERTED_ELEMENTS(3,I) /= 0) THEN
9408 L2 = SET_USRTOS(SEATBELT_CONVERTED_ELEMENTS(3,I),MAP_TABLES%ISPRINGM,NUMELR)
9412 SEATBELT_SHELL_TO_SPRING(L0,1) = L1
9413 SEATBELT_SHELL_TO_SPRING(L0,2) = L2
9418 CALL MY_ALLOC(SEATBELT_SHELL_TO_SPRING,1,2)
9419 SEATBELT_SHELL_TO_SPRING(1,1) = 0
9420 SEATBELT_SHELL_TO_SPRING(1,2) = 0
9426 ERR_CATEGORY='sections
'
9427 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9429 WRITE(ISTDO,'(a)
') ' .. sections
'
9431 1 SNSTRF ,SSECBUF ,ITABM1 ,0 ,NOM_OPT(LNOPT1*INOM_OPT(8)+1),
9432 2 IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
9433 3 IGRBEAM ,IGRSPRING ,IGRNOD ,LSUBMODEL, SEATBELT_SHELL_TO_SPRING,
9434 4 NB_SEATBELT_SHELLS)
9435 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
9436 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
9439 CALL LECSEC42(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9440 2 IXTG ,X ,ITAB ,ITABM1 ,
9442 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
9443 5 ISKWN ,XFRAME ,ISOLNOD,NOM_SECT,RTRANS,
9444 6 LSUBMODEL,NOM_OPT(LNOPT1*INOM_OPT(8)+1),IGRBRIC,IGRQUAD,IGRSH4N,
9445 7 IGRTRUSS ,IGRBEAM,IGRSPRING,IGRSH3N,SEATBELT_SHELL_TO_SPRING,
9446 8 NB_SEATBELT_SHELLS)
9447 SNSTRF = SIZE(NSTRF)
9451 ALLOCATE(NSTRF(SNSTRF) ,STAT=stat)
9452 ALLOCATE(SECBUF(SSECBUF) ,STAT=stat)
9454 IF(ALLOCATED(SEATBELT_SHELL_TO_SPRING)) DEALLOCATE(SEATBELT_SHELL_TO_SPRING)
9460 CALL INISEN(SENSORS ,IPARI,NOM_OPT,INOM_OPT(5),
9461 . INOM_OPT(8),INOM_OPT(4),IXR ,R_SKEW ,NUMELR,
9462 . NSECT ,NINTER ,NINTSUB ,NRWALL ,NRBODY )
9468 ERR_CATEGORY='joints
'
9469 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9470 CALL HM_PRELECJOI(SLJOINT ,IGRNOD,LSUBMODEL)
9471 ALLOCATE(LJOINT(SLJOINT) ,STAT=stat)
9474 ALLOCATE( CYL_JOIN(NJOINT) )
9477 WRITE(ISTDO,'(a)
') ' .. cylindrical joints
'
9478 CALL INIT_JOINT(NJOINT)
9479 CALL HM_READ_CYLJOINT(LJOINT ,ITABM1 ,D ,ITAB ,IGRNOD ,
9480 . NOM_OPT(LNOPT1*INOM_OPT(7)+1),LSUBMODEL)
9487 ERR_MSG='block boundary material nodes
'
9488 ERR_CATEGORY='block boundary material nodes
'
9489 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9490.AND.
IF(IALE+IEULER /= 0 NUMELQ+NUMELS > 0) THEN
9491 CALL NODM11(PM,IXS,IXQ,ICODE)
9497 ERR_MSG='porous nodes
'
9498 ERR_CATEGORY='porous nodes
'
9499 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9500.AND.
IF(IALE+IEULER /=0 NUMELQ+NUMELS >0)THEN
9501 SIWORK = NUMNOD+4*NFACX
9502 ALLOCATE(IWORK(SIWORK) ,STAT=stat)
9504 CALL PORNOD(GEO ,IXS ,IXQ ,IWORK ,ICODE ,
9505 + ITAB ,NPBY ,LPBY ,IGEO)
9507 ALLOCATE(NODPOR(SNODPOR) ,STAT=stat)
9508 NODPOR = IWORK(1:SNODPOR)
9512 ALLOCATE(NODPOR(SNODPOR) ,STAT=stat)
9519 ALLOCATE(ICONTACT(SICONTACT))
9522 ALLOCATE(ICONTACT(0))
9526 ALLOCATE(RCONTACT(SRCONTACT))
9528 ALLOCATE(ACONTACT(SRCONTACT))
9530 ALLOCATE(PCONTACT(SRCONTACT))
9533 ALLOCATE(RCONTACT(0))
9534 ALLOCATE(ACONTACT(0))
9535 ALLOCATE(PCONTACT(0))
9538 CALL FVDIM(T_MONVOL)
9539 ALLOCATE(FVDATA(NFVBAG))
9542 ERR_MSG='fvmbag meshing
'
9543 ERR_CATEGORY='fvmbag meshing
'
9544 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9545 IF(TETRAMESHER_USED) THEN
9546 CALL FVMESH0(T_MONVOL, NODE_COORD, IXS_TEMP, IXC, IXTG, PM,IPM, IGRSURF, XYZREF ,NB_TOTAL_NODE)
9548 CALL FVMESH0(T_MONVOL, X, IXS, IXC, IXTG, PM,IPM, IGRSURF, XYZREF ,NUMNOD)
9551 CALL COPY_TO_VOLMON(T_MONVOL, LRCBAG, T_MONVOL_METADATA%RCBAG, SVOLMON, VOLMON)
9553 CALL COPY_TO_MONVOL(T_MONVOL, LICBAG, T_MONVOL_METADATA%ICBAG, SMONVOL, MONVOL)
9557 ERR_CATEGORY='bem flow
'
9558 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9563 CALL HM_PREREAD_BEM(IGRSURF, IGRNOD , NNFT ,
9564 . UNITAB , NOM_OPT(LNOPT1*INOM_OPT(12)+1), LSUBMODEL)
9566 ALLOCATE(IFLOW(LIFLOW), RFLOW(LRFLOW))
9568 RFLOW(1:LRFLOW) = ZERO
9575 CALL HM_READ_BEM(IGRSURF, IFLOW, RFLOW,
9576 . NPC1 , IGRNOD , MEMFLOW(1,1),UNITAB,
9577 . X, NOM_OPT(LNOPT1*INOM_OPT(12)+1),LGAUGE, IGRV, LSUBMODEL,IRESP)
9580 ALLOCATE(IFLOW(0), RFLOW(0))
9583 ERR_MSG='eulerian boundary conditions
'
9584 ERR_CATEGORY='eulerian boundary conditions
'
9585 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9589 !update due to domain decomposition
9590 CALL INIEBCS(ALE_CONNECTIVITY, 1,IGRSURF, IXS, IXQ, IXTG,
9591 . PM, IGEO, X, SENSORS, MONVOl, MULTI_FVM%IS_USED, EBCS_TAB, EBCS_TAG_CELL_SPMD,ITAB)
9593 CALL INIEBCSP0(X, IPARG, ELBUF_TAB, EBCS_TAB, IXS, IXQ, IXTG, IPARTS, IPARTQ, IPARTG, PM, IPM, MAT_ELEM%MAT_PARAM)
9594 CALL INIEBCS_PROPELLANT(IXS,IXQ,IXTG,MULTI_FVM%IS_USED,EBCS_TAB,MAT_ELEM%MAT_PARAM,SIXS,SIXQ,SIXTG,NUMMAT)
9600 ERR_MSG='lagrange multipliers
'
9601 ERR_CATEGORY='lagrange multipliers
'
9602 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9603 NCMAX = LAG_NCF + LAG_NCL
9604 NKMAX = LAG_NKF + LAG_NKL
9605 LAG_NHL = LAG_NCL * 10
9607 IF( ALLOCATED(IADHF) ) DEALLOCATE(IADHF)
9608 IF( ALLOCATED(IADLL) ) DEALLOCATE(IADLL)
9609 IF( ALLOCATED(LLL) ) DEALLOCATE(LLL)
9610 IF( ALLOCATED(JLL) ) DEALLOCATE(JLL)
9611 ALLOCATE(IADHF(LAG_NCF + 1))
9612 ALLOCATE(IADLL(LAG_NCF + 1))
9613 ALLOCATE(LLL(LAG_NKF))
9614 ALLOCATE(JLL(LAG_NKF))
9615 IF(LAG_NCF > 0) THEN
9617 CALL LAGM_INI(LAG_NHF ,IADHF ,IADLL ,JLL ,LLL ,
9618 2 IPARI ,INTBUF_TAB,IGRNOD, IBCSLAG ,
9619 3 MS ,IN ,GJBUFI ,IBMPC ,IBMPC2 ,
9620 4 IBMPC3 ,IBMPC4 ,IBFV ,VEL ,ITAB ,
9621 5 NOM_OPT,INOM_OPT(3),INOM_OPT(15),INOM_OPT(16),
9622 6 INOM_OPT(17),INOM_OPT(18))
9623 ALLOCATE(JCIHF(LAG_NHF), STAT=stat)
9624 CALL LAGM_NHF(LAG_NCF, IADLL ,JLL ,LLL ,JCIHF )
9626 SLAGBUF = LAG_NHF + 3*LAG_NCF+2
9627 ALLOCATE(LAGBUF(SLAGBUF), STAT=stat)
9630 L3 = L2 + LAG_NCF + 1
9634 LAGBUF(1:L1) = IADHF(1:LAG_NCF + 1)
9635 LAGBUF(L1+1:L2) = JCIHF(1:LAG_NHF)
9641 ALLOCATE(LAGBUF(SLAGBUF))
9645 . CALL LGMINI_RWL(NPRW , LPRW , MS , ITAB,
9646 . NOM_OPT(LNOPT1*INOM_OPT(5)+1))
9648 . CALL LGMINI_I7(IPARI ,INTBUF_TAB , MS , ITAB , IGRNOD,
9649 . NOM_OPT(LNOPT1*INOM_OPT(3)+1))
9650 NHMAX = LAG_NHF + LAG_NHL
9652 IF(LAG_NCL/=0) LWAT = MAX(6*(NUMELS16+NUMELS20),6*NUMNOD)
9653 L_MUL_LAG1 = 2*NCMAX + 4*NKMAX + LWAT + 2
9655 L_MUL_LAG = MAX(L_MUL_LAG1+NUMNOD,
9656 . 11*NCMAX + 4*NKMAX + 3*NHMAX + 6*NUMNOD + 2)
9660 ALLOCATE(LAMBDA(SLAMBDA), STAT=stat)
9661 IF(SLAMBDA > 0) LAMBDA = ZERO
9666 ERR_MSG='gravity nodal forces
'
9667 ERR_CATEGORY='gravity nodal forces
'
9668 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9673 NLGRAV=FXBIPM(AIPM+25)
9674 AGRVI=FXBIPM(AIPM+26)
9675 AGRVR=FXBIPM(AIPM+27)
9679 . IGRV , LGRAV , FXBIPM(AIPM+18), FXBNOD(ANOD),
9680 . FXBGRVI(AGRVI), FXBGRVR(AGRVR), FXBIPM(AIPM+3), FXBMOD(AMOD),
9681 . FXBIPM(AIPM+4), FXBIPM(AIPM+17), MS , GRAV ,
9682 . SKEW , FXBIPM(AIPM+29), NFX , FXBIPM(AIPM+30))
9690 ERR_MSG='time history parts
'
9691 ERR_CATEGORY='time history
'
9692 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9694 CALL HM_READ_THPART(IPART ,IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N,
9695 . IGRTRUSS ,IGRBEAM ,IGRSPRING, LSUBMODEL)
9699 CALL CREATE_MAP_TABLES ( MAP_TABLES ,2 ,
9700 * LSUBMODEL ,SUBSETS,
9702 * IXS ,IXQ ,IXC ,IXTG ,
9703 * IXT ,IXP ,IXR ,KXSP,LRIVET,
9708 ERR_MSG='time history groups
'
9709 ERR_CATEGORY='time history
'
9710 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
9712 ! Number of /TH read by hm reader
9713 CALL HM_OPTION_COUNT('/th
' ,NTHGRP0)
9714 CALL HM_OPTION_COUNT('/ath
',NTHGRP01(1))
9715 CALL HM_OPTION_COUNT('/bth
',NTHGRP01(2))
9716 CALL HM_OPTION_COUNT('/cth
',NTHGRP01(3))
9717 CALL HM_OPTION_COUNT('/dth
',NTHGRP01(4))
9718 CALL HM_OPTION_COUNT('/eth
',NTHGRP01(5))
9719 CALL HM_OPTION_COUNT('/fth
',NTHGRP01(6))
9720 CALL HM_OPTION_COUNT('/gth
',NTHGRP01(7))
9721 CALL HM_OPTION_COUNT('/hth
',NTHGRP01(8))
9722 CALL HM_OPTION_COUNT('/ith
',NTHGRP01(9))
9724 NTHGRPMX = MAX(NTHGRP0,NTHGRP01(I))
9727 ! Number of /TH/MONV
9729 NBR_TH_MONVOL01(1:9) = 0
9730 CALL HM_OPTION_COUNT('/th/monv
' ,NBR_TH_MONVOL)
9731 CALL HM_OPTION_COUNT('/ath/monv
',NBR_TH_MONVOL01(1))
9732 CALL HM_OPTION_COUNT('/bth/monv
',NBR_TH_MONVOL01(2))
9733 CALL HM_OPTION_COUNT('/cth/monv
',NBR_TH_MONVOL01(3))
9734 CALL HM_OPTION_COUNT('/dth/monv
',NBR_TH_MONVOL01(4))
9735 CALL HM_OPTION_COUNT('/eth/monv
',NBR_TH_MONVOL01(5))
9736 CALL HM_OPTION_COUNT('/fth/monv
',NBR_TH_MONVOL01(6))
9737 CALL HM_OPTION_COUNT('/gth/monv
',NBR_TH_MONVOL01(7))
9738 CALL HM_OPTION_COUNT('/hth/monv
',NBR_TH_MONVOL01(8))
9739 CALL HM_OPTION_COUNT('/ith/monv
',NBR_TH_MONVOL01(9))
9741 NBR_TH_MONVOL = MAX(NBR_TH_MONVOL,NBR_TH_MONVOL01(I))
9744 OUTPUT%TH%SITHGRP = (NTHGRP0+NBR_TH_MONVOL)*NITHGR
9745 LITHPART = NTHGRPMX*(NPART+NTHPART)
9746 LITHSUB = NTHGRPMX*NSUBS
9752 ! New routine to pre-read /TH with hm_reader and old reader
9753 ! (needed to estimate sizes of buffers)
9754 CALL HM_READ_PRETHGROU(LITHBUFMX,NVARTOT0,LSUBMODEL,0,OUTPUT)
9756 CALL HM_READ_PRETHGROU(LITHBUFI,NVARTOT,LSUBMODEL,I,OUTPUT)
9757 LITHBUFMX = MAX(LITHBUFMX,LITHBUFI,NVARTOT,NVARTOT0)
9758 NVARTOTMAX = MAX(NVARTOTMAX,NVARTOT,NVARTOT0)
9761 SITHVAR = NVARTOT0*10+NVARTOT*10+NVOLU*10
9762 ALLOCATE(ITHPART(LITHPART) , STAT=stat)
9763 ALLOCATE(ITHSUB(LITHSUB) , STAT=stat)
9764 ALLOCATE(ITHBUFTMP(LITHBUFMX), STAT=stat)
9765 ALLOCATE(ITHVAR(SITHVAR) , STAT=stat)
9766 IF(SITHVAR > 0) ITHVAR(1:SITHVAR) = 0
9767 CALL MY_ALLOC(OUTPUT%TH%ITHGRP,OUTPUT%TH%SITHGRP)
9769 OUTPUT%TH%ITHGRP(1:OUTPUT%TH%SITHGRP) = 0
9773 OUTPUT%TH%SITHBUF = 0
9776 INTERFACES%PARAMETERS%INTCAREA =0
9777 ! New routine to read /TH with hm_reader and old reader
9778 CALL HM_READ_THGROU(
9779 1 OUTPUT%TH%ITHGRP ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9780 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9781 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUF,
9782 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9783 5 NTHGRP ,ITHPART ,ITHSUB ,FXBIPM ,IPART ,LIPART1 ,
9784 6 8 ,12 ,IMERGE ,ITHVAR ,
9785 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9786 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9787 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9788 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9789 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9790 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9791 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9792 E MAP_TABLES, 0,INOM_OPT(31),INOM_OPT(32),SENSORS ,
9793 F INTERFACES,IPARI ,OUTPUT%TH%DUMP_THNMS1_FILE,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9796 CALL MY_ALLOC(OUTPUT%TH%ITHBUF,OUTPUT%TH%SITHBUF)
9797 OUTPUT%TH%ITHBUF(1:OUTPUT%TH%SITHBUF) = ITHBUFTMP(1:OUTPUT%TH%SITHBUF)
9799 If (LITHBUFMX < OUTPUT%TH%SITHBUF) then
9800 print*,'allocation error :lithbufmx, sithbuf=
',LITHBUFMX,OUTPUT%TH%SITHBUF
9802 ALLOCATE(RTHBUF(SRTHBUF), STAT=stat)
9803 IF(SRTHBUF > 0) CALL THSKEWC(
9804 1 RTHBUF ,OUTPUT%TH%ITHGRP ,OUTPUT%TH%ITHBUF,X ,IXC ,IXTG ,SKEW,NTHGRP)
9809 IF(NTHGRP01(1) > 0) THEN
9810 OUTPUT%TH%SITHGRPA = (NTHGRP01(1)+NBR_TH_MONVOL)*NITHGR
9811 CALL MY_ALLOC(OUTPUT%TH%ITHGRPA,OUTPUT%TH%SITHGRPA)
9812 OUTPUT%TH%ITHGRPA = 0
9816 OUTPUT%TH%SITHBUFA = 0
9819 IF(NPART+NTHPART>0) THEN
9820 IPARTTHI=>IPARTTH(1:2*(NPART+NTHPART))
9824 CALL HM_READ_THGROU(
9825 1 OUTPUT%TH%ITHGRPA ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9826 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9827 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFA ,
9828 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9829 5 NTHGRP1(1),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9830 6 1 ,1 ,IMERGE ,ITHVAR ,
9831 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9832 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9833 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9834 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9835 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9836 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9837 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9838 E MAP_TABLES, 1,INOM_OPT(31),INOM_OPT(32),SENSORS,
9839 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9842 CALL MY_ALLOC(OUTPUT%TH%ITHBUFA,OUTPUT%TH%SITHBUFA)
9843 OUTPUT%TH%ITHBUFA = ITHBUFTMP(1:OUTPUT%TH%SITHBUFA)
9845 OUTPUT%TH%SITHGRPA = 0
9846 OUTPUT%TH%SITHBUFA = 0
9847 CALL MY_ALLOC(OUTPUT%TH%ITHGRPA,OUTPUT%TH%SITHGRPA)
9848 CALL MY_ALLOC(OUTPUT%TH%ITHBUFA,OUTPUT%TH%SITHBUFA)
9853 IF(NTHGRP01(2) > 0) THEN
9854 OUTPUT%TH%SITHGRPB = (NTHGRP01(2)+NBR_TH_MONVOL)*NITHGR
9855 CALL MY_ALLOC(OUTPUT%TH%ITHGRPB,OUTPUT%TH%SITHGRPB)
9856 OUTPUT%TH%ITHGRPB = 0
9860 OUTPUT%TH%SITHBUFB = 0
9863 IF(NPART+NTHPART>0) THEN
9864 IPARTTHI=>IPARTTH(1+2*(NPART+NTHPART):4*(NPART+NTHPART))
9868 CALL HM_READ_THGROU(
9869 1 OUTPUT%TH%ITHGRPB ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9870 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9871 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFB ,
9872 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9873 5 NTHGRP1(2),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9874 6 1 ,1 ,IMERGE ,ITHVAR ,
9875 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9876 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9877 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9878 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9879 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9880 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9881 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9882 E MAP_TABLES, 2,INOM_OPT(31),INOM_OPT(32),SENSORS,
9883 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9886 CALL MY_ALLOC(OUTPUT%TH%ITHBUFB,OUTPUT%TH%SITHBUFB)
9887 OUTPUT%TH%ITHBUFB = ITHBUFTMP(1:OUTPUT%TH%SITHBUFB)
9889 OUTPUT%TH%SITHGRPB = 0
9890 OUTPUT%TH%SITHBUFB = 0
9891 CALL MY_ALLOC(OUTPUT%TH%ITHGRPB,OUTPUT%TH%SITHGRPB)
9892 CALL MY_ALLOC(OUTPUT%TH%ITHBUFB,OUTPUT%TH%SITHBUFB)
9897 IF(NTHGRP01(3) > 0) THEN
9898 OUTPUT%TH%SITHGRPC = (NTHGRP01(3)+NBR_TH_MONVOL)*NITHGR
9899 CALL MY_ALLOC(OUTPUT%TH%ITHGRPC,OUTPUT%TH%SITHGRPC)
9900 OUTPUT%TH%ITHGRPC = 0
9904 OUTPUT%TH%SITHBUFC = 0
9907 IF(NPART+NTHPART>0) THEN
9908 IPARTTHI=>IPARTTH(1+4*(NPART+NTHPART):6*(NPART+NTHPART))
9912 CALL HM_READ_THGROU(
9913 1 OUTPUT%TH%ITHGRPC ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9914 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9915 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFC ,
9916 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9917 5 NTHGRP1(3),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9918 6 1 ,1 ,IMERGE ,ITHVAR ,
9919 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9920 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9921 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9922 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9923 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9924 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9925 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9926 E MAP_TABLES, 3,INOM_OPT(31),INOM_OPT(32),SENSORS,
9927 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9930 CALL MY_ALLOC(OUTPUT%TH%ITHBUFC, OUTPUT%TH%SITHBUFC)
9931 OUTPUT%TH%ITHBUFC(1:OUTPUT%TH%SITHBUFC) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFC)
9933 OUTPUT%TH%SITHGRPC = 0
9934 OUTPUT%TH%SITHBUFC = 0
9935 CALL MY_ALLOC(OUTPUT%TH%ITHBUFC, OUTPUT%TH%SITHBUFC)
9936 CALL MY_ALLOC(OUTPUT%TH%ITHGRPC, OUTPUT%TH%SITHGRPC)
9941 IF(NTHGRP01(4) > 0) THEN
9942 OUTPUT%TH%SITHGRPD = (NTHGRP01(4)+NBR_TH_MONVOL)*NITHGR
9943 CALL MY_ALLOC(OUTPUT%TH%ITHGRPD,OUTPUT%TH%SITHGRPD)
9944 OUTPUT%TH%ITHGRPD = 0
9948 OUTPUT%TH%SITHBUFD = 0
9951 IF(NPART+NTHPART>0) THEN
9952 IPARTTHI=>IPARTTH(1+6*(NPART+NTHPART):8*(NPART+NTHPART))
9956 CALL HM_READ_THGROU(
9957 1 OUTPUT%TH%ITHGRPD ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
9958 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
9959 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFD ,
9960 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
9961 5 NTHGRP1(4),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
9962 6 1 ,1 ,IMERGE ,ITHVAR ,
9963 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
9964 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
9965 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
9966 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
9967 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
9968 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
9969 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
9970 E MAP_TABLES, 4,INOM_OPT(31),INOM_OPT(32),SENSORS,
9971 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
9974 CALL MY_ALLOC(OUTPUT%TH%ITHBUFD,OUTPUT%TH%SITHBUFD)
9975 OUTPUT%TH%ITHBUFD(1:OUTPUT%TH%SITHBUFD) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFD)
9977 OUTPUT%TH%SITHGRPD = 0
9978 OUTPUT%TH%SITHBUFD = 0
9979 ALLOCATE(OUTPUT%TH%ITHBUFD(OUTPUT%TH%SITHBUFD), STAT=stat)
9980 ALLOCATE(OUTPUT%TH%ITHGRPD(OUTPUT%TH%SITHGRPD), STAT=stat)
9985 IF(NTHGRP01(5) > 0) THEN
9986 OUTPUT%TH%SITHGRPE = (NTHGRP01(5)+NBR_TH_MONVOL)*NITHGR
9987 CALL MY_ALLOC(OUTPUT%TH%ITHGRPE,OUTPUT%TH%SITHGRPE)
9988 OUTPUT%TH%ITHGRPE = 0
9992 OUTPUT%TH%SITHBUFE = 0
9995 IF(NPART+NTHPART>0) THEN
9996 IPARTTHI=>IPARTTH(1+8*(NPART+NTHPART):10*(NPART+NTHPART))
10001 CALL HM_READ_THGROU(
10002 1 OUTPUT%TH%ITHGRPE ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10003 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10004 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFE ,
10005 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10006 5 NTHGRP1(5),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10007 6 1 ,1 ,IMERGE ,ITHVAR ,
10008 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10009 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10010 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10011 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10012 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10013 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10014 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10015 E MAP_TABLES, 5,INOM_OPT(31),INOM_OPT(32),SENSORS,
10016 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10019 CALL MY_ALLOC(OUTPUT%TH%ITHBUFE,OUTPUT%TH%SITHBUFE)
10020 OUTPUT%TH%ITHBUFE = ITHBUFTMP(1:OUTPUT%TH%SITHBUFE)
10022 OUTPUT%TH%SITHGRPE = 0
10023 OUTPUT%TH%SITHBUFE = 0
10024 CALL MY_ALLOC(OUTPUT%TH%ITHBUFE,OUTPUT%TH%SITHBUFE)
10025 CALL MY_ALLOC(OUTPUT%TH%ITHGRPE,OUTPUT%TH%SITHGRPE)
10030 IF(NTHGRP01(6) > 0) THEN
10031 OUTPUT%TH%SITHGRPF = (NTHGRP01(6)+NBR_TH_MONVOL)*NITHGR
10032 CALL MY_ALLOC(OUTPUT%TH%ITHGRPF,OUTPUT%TH%SITHGRPF)
10033 OUTPUT%TH%ITHGRPF = 0
10037 OUTPUT%TH%SITHBUFF = 0
10040 IF(NPART+NTHPART>0) THEN
10041 IPARTTHI=>IPARTTH(1+10*(NPART+NTHPART):12*(NPART+NTHPART))
10045 CALL HM_READ_THGROU(
10046 1 OUTPUT%TH%ITHGRPF ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10047 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10048 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFF ,
10049 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10050 5 NTHGRP1(6),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10051 6 1 ,1 ,IMERGE ,ITHVAR ,
10052 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10053 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10054 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10055 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10056 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10057 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10058 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10059 E MAP_TABLES, 6,INOM_OPT(31),INOM_OPT(32),SENSORS,
10060 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10063 CALL MY_ALLOC(OUTPUT%TH%ITHBUFF,OUTPUT%TH%SITHBUFF)
10064 OUTPUT%TH%ITHBUFF(1:OUTPUT%TH%SITHBUFF) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFF)
10066 OUTPUT%TH%SITHGRPF = 0
10067 OUTPUT%TH%SITHBUFF = 0
10068 CALL MY_ALLOC(OUTPUT%TH%ITHBUFF,OUTPUT%TH%SITHBUFF)
10069 CALL MY_ALLOC(OUTPUT%TH%ITHGRPF,OUTPUT%TH%SITHGRPF)
10074 IF(NTHGRP01(7) > 0) THEN
10075 OUTPUT%TH%SITHGRPG = (NTHGRP01(7)+NBR_TH_MONVOL)*NITHGR
10076 CALL MY_ALLOC(OUTPUT%TH%ITHGRPG,OUTPUT%TH%SITHGRPG)
10077 OUTPUT%TH%ITHGRPG = 0
10078 OUTPUT%TH%SITHBUFG = 0
10084 IF(NPART+NTHPART>0) THEN
10085 IPARTTHI=>IPARTTH(1+12*(NPART+NTHPART):14*(NPART+NTHPART))
10089 CALL HM_READ_THGROU(
10090 1 OUTPUT%TH%ITHGRPG ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10091 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10092 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFG ,
10093 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10094 5 NTHGRP1(7),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10095 6 1 ,1 ,IMERGE ,ITHVAR ,
10096 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10097 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10098 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10099 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10100 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10101 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10102 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10103 E MAP_TABLES, 7,INOM_OPT(31),INOM_OPT(32),SENSORS,
10104 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10107 CALL MY_ALLOC(OUTPUT%TH%ITHBUFG,OUTPUT%TH%SITHBUFG)
10108 OUTPUT%TH%ITHBUFG(1:OUTPUT%TH%SITHBUFG) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFG)
10110 OUTPUT%TH%SITHGRPG = 0
10111 OUTPUT%TH%SITHBUFG = 0
10112 CALL MY_ALLOC(OUTPUT%TH%ITHBUFG,OUTPUT%TH%SITHBUFG)
10113 CALL MY_ALLOC(OUTPUT%TH%ITHGRPG,OUTPUT%TH%SITHGRPG)
10118 IF(NTHGRP01(8) > 0) THEN
10119 OUTPUT%TH%SITHGRPH = (NTHGRP01(8)+NBR_TH_MONVOL)*NITHGR
10120 CALL MY_ALLOC(OUTPUT%TH%ITHGRPH,OUTPUT%TH%SITHGRPH)
10121 OUTPUT%TH%ITHGRPH = 0
10125 OUTPUT%TH%SITHBUFH = 0
10128 IF(NPART+NTHPART>0) THEN
10129 IPARTTHI=>IPARTTH(1+14*(NPART+NTHPART):16*(NPART+NTHPART))
10133 CALL HM_READ_THGROU(
10134 1 OUTPUT%TH%ITHGRPH ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10135 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10136 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFH ,
10137 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10138 5 NTHGRP1(8),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10139 6 1 ,1 ,IMERGE ,ITHVAR ,
10140 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10141 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10142 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10143 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10144 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10145 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10146 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10147 E MAP_TABLES, 8,INOM_OPT(31),INOM_OPT(32),SENSORS,
10148 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10151 CALL MY_ALLOC(OUTPUT%TH%ITHBUFH,OUTPUT%TH%SITHBUFH)
10152 OUTPUT%TH%ITHBUFH(1:OUTPUT%TH%SITHBUFH) = ITHBUFTMP(1:OUTPUT%TH%SITHBUFH)
10154 OUTPUT%TH%SITHGRPH = 0
10155 OUTPUT%TH%SITHBUFH = 0
10156 CALL MY_ALLOC(OUTPUT%TH%ITHBUFH,OUTPUT%TH%SITHBUFH)
10157 CALL MY_ALLOC(OUTPUT%TH%ITHGRPH,OUTPUT%TH%SITHGRPH)
10162 IF(NTHGRP01(9) > 0) THEN
10163 OUTPUT%TH%SITHGRPI = (NTHGRP01(9)+NBR_TH_MONVOL)*NITHGR
10164 CALL MY_ALLOC(OUTPUT%TH%ITHGRPI,OUTPUT%TH%SITHGRPI)
10165 OUTPUT%TH%ITHGRPI = 0
10169 OUTPUT%TH%SITHBUFI = 0
10172 IF(NPART+NTHPART>0) THEN
10173 IPARTTHI=>IPARTTH(1+16*(NPART+NTHPART):18*(NPART+NTHPART))
10177 CALL HM_READ_THGROU(
10178 1 OUTPUT%TH%ITHGRPI ,ITHBUFTMP,ITAB ,ITABM1 ,IXTG ,
10179 2 IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
10180 3 KXX ,IXX ,IPART ,OUTPUT%TH%SITHBUFI ,
10181 4 NTHWA ,KXSP ,LRIVET ,ISKWN ,IFRAME ,
10182 5 NTHGRP1(9),ITHPART ,ITHSUB ,FXBIPM ,IPARTTHI,2 ,
10183 6 1 ,1 ,IMERGE ,ITHVAR ,
10184 7 1 ,NVARABF ,NOM_OPT ,INOM_OPT(11),INOM_OPT(3),
10185 8 INOM_OPT(5),INOM_OPT(8),INOM_OPT(7),
10186 9 INOM_OPT(2),INOM_OPT(1),INOM_OPT(10),INOM_OPT(27),
10187 A INOM_OPT(28),INOM_OPT(22),ISPHIO,SRTHBUF,T_MONVOL ,
10188 B IGRSURF ,SUBSETS ,ITHFLAG,NPBY ,LSUBMODEL, IPARG ,
10189 C IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,IPARTR ,
10190 D IPARTG ,IPARTX ,IPARTSP ,IPARTIG3D,LITHBUFMX,
10191 E MAP_TABLES, 9,INOM_OPT(31),INOM_OPT(32),SENSORS,
10192 F INTERFACES,IPARI ,0,GLOB_THERM%ITHERM_FE,OUTPUT%CHECKSUM,
10195 CALL MY_ALLOC(OUTPUT%TH%ITHBUFI,OUTPUT%TH%SITHBUFI)
10196 OUTPUT%TH%ITHBUFI = ITHBUFTMP(1:OUTPUT%TH%SITHBUFI)
10198 OUTPUT%TH%SITHGRPI = 0
10199 OUTPUT%TH%SITHBUFI = 0
10200 CALL MY_ALLOC(OUTPUT%TH%ITHBUFI,OUTPUT%TH%SITHBUFI)
10201 CALL MY_ALLOC(OUTPUT%TH%ITHGRPI,OUTPUT%TH%SITHGRPI)
10205 IF(ALLOCATED(ITHPART)) DEALLOCATE(ITHPART)
10206 IF(ALLOCATED(ITHSUB)) DEALLOCATE(ITHSUB)
10207 IF(ALLOCATED(ITHBUFTMP)) DEALLOCATE(ITHBUFTMP)
10212 CALL TH_SURF_LOAD_PRESSURE(IGRSURF , OUTPUT%TH%TH_SURF , IPRES ,ILOADP ,LLOADP ,
10213 . SIZLOADP ,NLOADP ,SLLOADP ,NIBCLD ,NPRELD ,
10264 CALL THPINIT(OUTPUT%TH%ITHGRP,OUTPUT%TH%ITHBUF,IPARG ,DD_IAD ,LRIVET ,
10266 IF(NTHGRP01(1) > 0)
10267 . CALL THPINIT(OUTPUT%TH%ITHGRPA,OUTPUT%TH%ITHBUFA,IPARG ,DD_IAD ,LRIVET ,
10269 IF(NTHGRP01(2) > 0)
10270 . CALL THPINIT(OUTPUT%TH%ITHGRPB,OUTPUT%TH%ITHBUFB,IPARG ,DD_IAD ,LRIVET ,
10272 IF(NTHGRP01(3) > 0)
10273 . CALL THPINIT(OUTPUT%TH%ITHGRPC,OUTPUT%TH%ITHBUFC,IPARG ,DD_IAD ,LRIVET ,
10275 IF(NTHGRP01(4) > 0)
10276 . CALL THPINIT(OUTPUT%TH%ITHGRPD,OUTPUT%TH%ITHBUFD,IPARG ,DD_IAD ,LRIVET ,
10278 IF(NTHGRP01(5) > 0)
10279 . CALL THPINIT(OUTPUT%TH%ITHGRPE,OUTPUT%TH%ITHBUFE,IPARG ,DD_IAD ,LRIVET ,
10281 IF(NTHGRP01(6) > 0)
10282 . CALL THPINIT(OUTPUT%TH%ITHGRPF,OUTPUT%TH%ITHBUFF,IPARG ,DD_IAD ,LRIVET ,
10284 IF(NTHGRP01(7) > 0)
10285 . CALL THPINIT(OUTPUT%TH%ITHGRPG,OUTPUT%TH%ITHBUFG,IPARG ,DD_IAD ,LRIVET ,
10287 IF(NTHGRP01(8) > 0)
10288 . CALL THPINIT(OUTPUT%TH%ITHGRPH,OUTPUT%TH%ITHBUFH,IPARG ,DD_IAD ,LRIVET ,
10290 IF(NTHGRP01(9) > 0)
10291 . CALL THPINIT(OUTPUT%TH%ITHGRPI,OUTPUT%TH%ITHBUFI,IPARG ,DD_IAD ,LRIVET ,
10298 DEALLOCATE(TAG_PART,TAGMON,TAGRBY,TAGINT,TAGCYL,TAGLNK)
10299 DEALLOCATE(TAGRB3,TAGRB2,TAGJOIN,TAGMPC,TAG_MAT)
10304 ERR_MSG='dynamic storage madymo link
'
10305 ERR_CATEGORY='dynamic storage madymo link
'
10306 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10307 SRCONX = NCONX*NRCNX
10308 ALLOCATE(RCONX(SRCONX) ,STAT=stat)
10313 IF(NRBMERGE > 0) THEN
10314 NRBODY = NRBYKIN + NRBYLAG
10323 1 LENWA ,NTHWA ,NAIRWA ,NUMELS ,NUMELQ,
10324 2 NUMELC,NUMELTG,NUMELT ,NUMELP ,NUMELR,
10325 3 NUMNOD,NMNT ,L_MUL_LAG1,L_MUL_LAG,MAXNX ,
10326 4 LWASPH,NUMSPH ,LWASPIO, NRCVVOIS0,NGROUP,
10327 5 LWAMP_L,LWANMP_L ,GLOB_THERM%ITHERM)
10328 LWAMP = LWAMP_L !< Copy values in common
10329 LWANMP = LWANMP_L !< Copy values in common
10331 ALLOCATE(MWA(LENWA) , STAT=stat)
10333 CALL SETMULTI(IPARI )
10340 ERR_MSG='INTERFACE initialization phase 2
'
10341 ERR_CATEGORY='interfaces
'
10342 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10345 ALLOCATE(MS_B(NUMNOD),STAT=stat)
10346 MS_B(1:NUMNOD)=MS(1:NUMNOD)
10348 ALLOCATE(IN_B(NUMNOD),STAT=stat)
10349 IN_B(1:NUMNOD)=IN(1:NUMNOD)
10354.AND.
IF(NS10E>0N2D==0) CALL STIFN0_ND(ICNDS10,STIFFN)
10355 IF(NINTER > 0) THEN
10356 CALL ININTR2(IPARI ,INSCR ,X ,
10357 . IXS ,IXQ ,IXC ,PM ,GEO ,
10358 . INSCR ,ITAB ,MS ,NPBY ,LPBY ,
10359 . MWA ,D ,I2NSNT ,IN ,
10360 . STIFFN,STIFINT ,NOM_OPT(LNOPT1*INOM_OPT(3)+1),INOD_PXFEM ,MS_PLY,
10361 . INTBUF_TAB,STIFINTR,ITAGND,ICNDS10,MS_B,IN_B,NSTRF,ITAGCYC,
10362 . IRBE2 ,IRBE3 ,LRBE3 ,
10363 . KNOD2ELS ,NOD2ELS , IXS10 ,IXS16 ,IXS20,
10370.AND.
IF(NS10E>0N2D==0) CALL STIFN1_ND(ICNDS10,STIFFN)
10371 IF(NDAMP>0) CALL DAMPDTNODA(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),
10376 CALL OUTRI(DTELEM,IXS,IXQ,IXC,IXT,IXP,IXR,IXTG,
10377 . KXX,KXSP,KXIG3D,IGEO,NUMEL)
10381 CALL OUTRIN(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),ITAB,DTNODA)
10385 ERR_MSG='added mass estimation
'
10386 ERR_CATEGORY='added mass estimation
'
10387 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10388 IF(N2D==0) CALL ADD_MASS_STAT(MS_B,IN_B,STIFFN,STIFFN(NUMNOD+1),ITAB,TOTMAS)
10393 CALL R2R_SPEEDUP(DTELEM,DTNODA,DT_R2R,COST_R2R,ISOLOFF,
10394 . ISHEOFF,ITRUOFF ,IPOUOFF ,IRESOFF ,ITRIOFF,
10398 DEALLOCATE(STIFINT)
10399 DEALLOCATE(STIFINTR)
10407 ERR_MSG='rbe3 initialization
'
10408 ERR_CATEGORY='rbe3
'
10409 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10410 IF(SIRBE3 > 0) THEN
10411 CALL INIRBE3(IRBE3 ,LRBE3 ,FRBE3 ,SKEW ,X ,
10412 . MS ,IN ,NOM_OPT(LNOPT1*INOM_OPT(14)+1),
10413 . STIFFN,STIFFN(NUMNOD+1),ICODE,ITAB )
10418 ERR_MSG='kinematic conditions check
'
10419 ERR_CATEGORY='kinematic conditions
'
10420 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10425 CALL RIGMODIF1_ND(NPBY,LPBY,ITAGND)
10426 CALL RBE2MODIF1_ND(IRBE2,LRBE2,ITAGND)
10427 CALL BCSMODIF_ND(ICODE, ITAGND,ICNDS10,ITAB,
10428 . NNPBY,SLRBODY,NRBE2L ,SLRBE2,
10429 . NPBY ,LPBY ,IRBE2 ,LRBE2 )
10430 CALL FIXMODIF_ND(IBFV , ITAGND,ICNDS10,ITAB)
10431 CALL BCSCYCMODIF_ND(IBCSCYC,LBCSCYC,ITAGND,ITAB)
10439 CALL KINCHK(D ,RWBUF ,ITAB ,NPRW ,LPRW ,KINET ,
10440 . NPBY , LPBY ,IRBE2 ,LRBE2 ,IRBE3 ,LRBE3 ,
10441 . NOM_OPT ,INOM_OPT(5),INOM_OPT(13),INOM_OPT(14) ,
10444 . CALL INIVCHK(D ,RWBUF,ITAB,NPRW,LPRW,KINET,
10445 1 NPBY, LPBY,IRBE2,LRBE2,IRBE3,LRBE3,
10446 2 FRBE3,X ,SKEW ,V ,VR )
10449 . CALL MADCHK(D ,ITAB ,ICONX(7*NCONX+1))
10455 ERR_MSG='mass array allocation
'
10456 ERR_CATEGORY='iniial mass
'
10457 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10458 ALLOCATE(MS0(NUMNOD) ,STAT=stat)
10459 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10460 . MSGTYPE=MSGERROR,
10462 MS0(1:NUMNOD)=MS(1:NUMNOD)
10469 SIBUFSSG_IO = 4*NSEG_IO
10470 ALLOCATE(IBUFSSG_IO(SIBUFSSG_IO) ,STAT=stat)
10471 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10472 . MSGTYPE=MSGERROR,
10474 IBUFSSG_IO(1:SIBUFSSG_IO) = 0
10475 CALL SET_IBUFSSG_IO(ISPHIO, IGRSURF, IBUFSSG_IO)
10477 ALLOCATE(IBUFSSG_IO(1))
10481!--------------------------------------------
10482! Split the surface & add the MONVOL nodes
10483! on a given processor
10484!--------------------------------------------
10485 CALL PYTHON_DUPLICATE_NODES(ITAB,NUMNOD,NSPMD) ! nodes used in the python functions must be on all processors
10486 CALL IGRSURF_SPLIT(SCEP,CEP,T_MONVOL,IGRSURF,IGRSURF_PROC)
10490 ERR_MSG='domain decomposition phase 2
'
10491 ERR_CATEGORY='internal
'
10492 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10493 SFR_IAD = (NSPMD+1)*2
10494 ALLOCATE(FR_IAD(SFR_IAD))
10496 ALLOCATE(CELI2(I2NSNT))
10497 ALLOCATE(CEPI2(I2NSNT))
10498 ALLOCATE(ADDCNI2(0:NUMNOD+1))
10500 ALLOCATE(ISKWP(NUMSKW+1))
10501 ALLOCATE(NSKWP(NSPMD))
10502 ALLOCATE(ISENSP(2*SENSORS%NSENSOR))
10503 ALLOCATE(NSENSP(NSPMD))
10504 ALLOCATE(IACCP(NACCELM))
10505 ALLOCATE(NACCP(NSPMD))
10506 ALLOCATE(IGAUP(NBGAUGE))
10507 ALLOCATE(NGAUP(NSPMD))
10508 ALLOCATE(TAG_SKN(NUMSKW+NSUBMOD+1))
10509 ALLOCATE(SKEWS%MULTIPLE_SKEW(NUMSKW+1))
10510 ISKWP(1:NUMSKW+1) = 0
10511 TAG_SKN(1:NUMSKW+NSUBMOD+1) = 0
10514.NOT.
IF( ALLOCATED(IBVEL)) ALLOCATE(IBVEL(0)) ! Deprecated option?
10515.NOT.
IF( ALLOCATED(LBVEL)) ALLOCATE(LBVEL(0)) ! Deprecated option?
10518 1 DD_IAD ,IPARI ,IBCL ,NPBY ,
10519 2 LPBY ,LRIVET ,IBVEL ,LBVEL ,
10520 3 IPARG ,CEL ,IXS ,IXS10 ,IXS20 ,
10521 4 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
10522 5 IXR ,IXTG ,IXTG1 ,T_MONVOL ,
10523 6 IGRSURF,ADDCNE ,LCNE ,GEO ,
10524 7 NPRW ,LPRW ,LCNI2G ,ADDCNI2 ,CEPI2 ,
10525 8 CELI2 ,I2NSNT ,ISKWN ,ISKWP ,NSKWP ,
10526 9 ISENSP ,NSENSP ,IACCP ,NACCP ,
10527 A LACCELM,IBCV ,IRBE3 ,LRBE3 ,FRONT_RM,
10528 B IRBYM ,LNRBYM ,CEP ,IBCR ,IRBE2 ,
10529 C LRBE2 ,CEPSP ,CELSPH ,ILOADP ,LLOADP ,
10530 D LGAUGE ,IGAUP ,NGAUP ,INTBUF_TAB,IBFFLUX ,
10531 E ICNDS10,ITAGND ,IGEO ,TAG_SKN ,SKEWS%MULTIPLE_SKEW,
10532 F IBFV ,IBCSCYC ,LBCSCYC,R_SKEW ,IPM,
10533 G SENSORS,SCEP ,EBCS_TAB,LOADS,IFRAME,
10534 H GLOB_THERM%NICONV ,GLOB_THERM%NIRADIA ,GLOB_THERM%NITFLUX,
10535 I GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX,
10536 J SENSOR_USER_STRUCT)
10554 ALLOCATE(CELCND(NS10E))
10555 ALLOCATE(CEPCND(NS10E))
10556 ALLOCATE(ADDCNCND(0:NUMNOD+1))
10557 CALL PRE_CNDPON(ICNDS10,ADDCNCND,CEPCND,CELCND ,ITAGND )
10558 LCNCND = ADDCNCND(NUMNOD+1)-ADDCNCND(1)
10560 ALLOCATE(CNCND(LCNCND))
10562 CALL FILLCNCND(CNCND ,ADDCNCND,ICNDS10,ITAGND)
10569 IF(NRBYKIN > 0) THEN
10570 call hierarchy_rbody_ddm(NRBYKIN ,NNPBY ,NPBY ,SLRBODY ,LPBY ,
10575 ERR_MSG='process bem
for spmd
'
10576 ERR_CATEGORY='process bem
for spmd
'
10577 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10578.AND.
IF(NFLOW>0 NSPMD > 1) CALL FLOWDEC(IFLOW)
10583 ERR_MSG='closing tmp input file
'
10584 ERR_CATEGORY='internal
'
10585 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10586 IF(IPID/=0) CLOSE (UNIT=IIN)
10591 ERR_MSG='animation file writing
'
10592 ERR_CATEGORY='animation file writing
'
10593 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10594 WRITE(ISTDO,'(a)
')TITRE(46)
10595 IF(IOUTPUT>0) CALL DESOUT(
10596 . X ,IXS ,IXQ ,IXC ,IXT ,
10597 . IXP ,IXR ,IXTG ,ITAB ,PM ,
10598 . GEO ,MS ,IXS10 ,IGEO ,IPM ,
10599 . KXSP ,IPART ,IPARTSP,NAMES_AND_TITLES )
10605.AND..OR.
IF(ANIM_VERS>=40(DSANIM==1
10607.OR.
. NMANIM>0IFVANI>0)) THEN
10608 NEL3D = NUMELS + NUMSPH + 3*NUMELS16 + 27*NUMELIG3D
10609 NEL2D = NUMELC + NUMELTG + NUMELQ
10610 NEL1D = NUMELT + NUMELP + 2*NUMELR
10611 NEL = MAX(NEL1D,NEL2D,NEL3D)
10614 SWAFT=MAX(3*NUMNOD,6*NEL3D,3*NEL2D,9*NEL1D)
10615 SMAS=NEL+3*NUMELS16
10616 SWA4=3*NUMNOD+2*NUMELS16
10619 SXNORM=3*NUMNOD+2*NUMELS16
10636 NELEM=NUMELC+NUMELTG+NUMELS+NUMELR +
10637 . NUMELP+NUMELT +NUMELQ+NUMELX
10639 CALL MY_ALLOC(DNULL,3*NUMNOD)
10664 1 X ,ELBUF ,IXS ,IXQ ,IXC ,
10665 2 IXT ,IXP ,IXR ,IXTG ,SWAFT ,
10666 3 IPARG ,PM ,GEO ,SKEW ,ITAB ,
10667 4 LPBY ,NPBY ,NSTRF ,RWBUF ,NPRW ,
10668 5 IPART ,IPARTS ,IPARTQ ,IPARTC ,
10669 6 IPARTT ,IPARTP ,IPARTR ,IPARTG ,
10671 8 IGRSURF ,BUFSF ,IPARTX ,KXSP ,IXSP ,
10672 9 IPARTSP ,SPBUF ,IXS10 ,IXS20 ,IXS16 ,
10673 A IPM, IGEO, SMATER, SEL2FA, SNFACPTX,
10674 B SIXEDGE, SOFFX1, SNUMX1, SXNORM, SINVERT,
10675 C SFUNC1, SIAD , NMANIM, DNULL, SMAS,
10676 D MS ,FXANI ,MBUFEL ,MDEPL ,NSLEVEL ,
10677 E ELSUB, DSANIM, NELEM, CEP, CEPSP,
10678 F NOM_OPT ,INOM_OPT(5),INOM_OPT(8),
10679 G ELBUF_TAB,SPH2SOL ,SUBSETS )
10687.OR..AND.
IF((IS_DYNA /= 0 NB_DYNA_INCLUDE /= 0) (NGINE+NANIM_ENG /= 0))THEN
10688 CALL READ_ENGINE_DRIVER(IGRPART,IS_DYNA,NB_DYNA_INCLUDE)
10693 CALL ST_QAPRINT_DRIVER(
10694 1 IGEO ,GEO ,BUFGEO ,IPM ,PM ,
10695 2 BUFMAT ,NOM_OPT ,INOM_OPT(1) ,NUMLOADP ,ILOADP ,
10696 3 LLOADP ,LOADP ,IBCL ,FORC ,IPRES ,
10697 4 PRES ,NPBY ,LPBY ,RBY ,IBCR ,
10698 5 FRADIA ,IBCV ,FCONV ,IBFTEMP ,FBFTEMP ,
10699 6 IGRV ,LGRAV ,GRAV ,IBFFLUX ,FBFFLUX ,
10700 7 ITAB ,V , VR ,W ,ICODE ,
10701 8 ISKEW ,ICFIELD ,LCFIELD ,CFIELD ,DAMPR ,
10702 9 TEMP ,IBCSLAG ,IPARI ,INTBUF_TAB ,CLUSTERS ,
10703 A IBOX ,IPMAS ,IBFV ,VEL ,NIMPACC ,
10704 B LACCELM ,ACCELM ,NOM_SECT ,NSTRF ,SECBUF ,
10705 C SKEW ,ISKWN ,XFRAME ,T_MONVOL ,T_MONVOL_METADATA,
10706 D I2RUPT ,AREASL ,INTBUF_FRIC_TAB ,NPFRICORTH ,MAT_ELEM ,
10707 E PFRICORTH ,IREPFORTH ,PHIFORTH ,VFORTH ,XREFC ,
10708 F XREFTG ,XREFS ,TAGXREF ,IXS ,IXC ,
10709 G IXTG ,RWBUF ,NPRW ,LPRW ,ITHVAR ,
10710 H IPART ,SUBSETS ,IPARTTH ,NTHGRPMX ,NIMPDISP ,
10711 M NIMPVEL ,DETONATORS ,IBCSCYC ,NPC ,TF ,
10712 N TABLE ,NPTS ,IRBE3 ,LRBE3 ,FRBE3 ,
10713 P MGRBY ,IXS10 ,ISOLNOD ,IXR ,R_SKEW ,
10714 O IXP ,IXT ,X ,THKE ,SH4ANG ,
10715 Q THKEC ,SH3ANG ,SET ,LSUBMODEL ,IGRNOD ,
10716 R IGRPART ,IGRBRIC ,IGRSH4N ,IGRSH3N ,IGRQUAD ,
10717 S IGRBEAM ,IGRTRUSS ,IGRSPRING ,IGRSURF ,IGRSLIN ,
10718 T IXQ ,ISPCOND ,RTRANS ,IRAND ,ALEA ,
10719 U XSEED ,XLAS ,ILAS ,IRBE2 ,LRBE2 ,
10720 V KXSP ,IPARTSP ,DRAPE ,IXR_KJ ,IACTIV ,
10721 W FACTIV ,UNITAB ,NPBYL ,LPBYL ,RBYL ,
10722 X XYZREF ,SENSORS ,FUNC2D ,
10723 Y INICRACK ,IPRELOAD ,PRELOAD ,IFLAG_BPRELOAD,IBMPC ,
10724 Z IBMPC2 ,IBMPC3 ,IBMPC4 ,RBMPC ,LJOINT ,
10725 A NNLINK ,LNLINK ,BUFSF ,SBUFSF ,STACK%PM ,
10726 B STACK%GEO ,STACK%IGEO ,IPARG ,IPADMESH ,PADMESH ,
10727 C LIFLOW ,LRFLOW ,IFLOW ,RFLOW ,
10728 D SH4TREE ,SH3TREE ,SH4TRIM ,SH3TRIM ,QP_IPERTURB ,
10729 E QP_RPERTURB ,LLINAL ,LINALE ,FVM_INIVEL ,GJBUFI ,
10730 F GJBUFR ,MS ,IN ,LGAUGE ,GAUGE ,
10731 G KXX ,IXX ,IPARTX ,LRIVET ,IXS16 ,
10732 H ICONX ,FXBIPM ,FXBFILE_TAB ,EIGIPM ,EIGRPM ,
10733 I ISPHIO ,VSPHIO ,EBCS_TAB ,INIMAP1D ,INIMAP2D ,
10734 J NSIGSH ,SIGSH ,NSIGI ,SIGSP ,NSIGS ,
10735 K SIGI ,NSIGBEAM ,SIGBEAM ,NSIGTRUSS ,SIGTRUSS ,
10736 L NSIGRS ,SIGRS ,MERGE_NODE_TAB ,MERGE_NODE_TOL,
10737 M IMERGE ,NMERGE_TOT ,IEXLNK ,DRAPEG ,USER_WINDOWS ,OUTPUT ,
10738 N DEFAULTS ,GLOB_THERM ,PBLAST ,IBEAM_VECTOR ,RBEAM_VECTOR ,
10745 DEALLOCATE(SIGBEAM)
10746 DEALLOCATE(SIGTRUSS)
10747 DEALLOCATE(IBEAM_VECTOR)
10748 DEALLOCATE(RBEAM_VECTOR)
10752 CALL CPP_DELETE_MODEL()
10754 IF(NINTER > 0) THEN
10758 IF(NRBMERGE > 0) THEN
10764 IF(NFUNC2D > 0) THEN
10766 DEALLOCATE(FUNC2D(KK)%XVAL, FUNC2D(KK)%FVAL)
10770 IF(ALLOCATED(RNOISE)) DEALLOCATE(RNOISE)
10771 IF(ALLOCATED(PERTURB)) DEALLOCATE(PERTURB)
10772 IF(ALLOCATED(QP_IPERTURB)) DEALLOCATE(QP_IPERTURB)
10773 IF(ALLOCATED(QP_RPERTURB)) DEALLOCATE(QP_RPERTURB)
10776.AND..AND.
IF(NINTER > 0 NINTERFRIC >0 IORTHFRICMAX > 0) THEN
10778 DEALLOCATE(PFRICORTH ,IREPFORTH , VFORTH ,PHIFORTH )
10784 ERR_MSG='restart file(s) writing
'
10785 ERR_CATEGORY='restart file(s) writing
'
10786 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
10791 IF(RESTART_FILE==1) WRITE(ISTDO,'(a)
')TITRE(50)
10792 IF(RESTART_FILE==0) WRITE(ISTDO,'(a)
')CHECK_MESSAGE(1)( 1:len_trim(CHECK_MESSAGE(1)) )
10796 ILEN = MAX(NUMELS,NUMELQ,NUMELC,NUMELT,NUMELP,NUMELR,NUMELTG)
10797 IF(LCNE>0) ALLOCATE(CNE(LCNE),STAT=stat)
10798 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='cne
')
10800 1 CNE ,LCNE ,IXS ,IXS10 ,IXS20 ,
10801 2 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
10802 3 IXR ,IXTG ,IXTG1 ,T_MONVOL ,
10803 4 IGRSURF,IBCL ,ADDCNE ,CEP ,
10804 5 ILEN ,GEO ,IBCV ,IBCR ,IBFFLUX ,
10805 6 ILOADP ,LLOADP ,CEL ,EBCS_TAB,LOADS,
10806 7 GLOB_THERM%NICONV ,GLOB_THERM%NIRADIA ,GLOB_THERM%NITFLUX,
10807 8 GLOB_THERM%NUMCONV,GLOB_THERM%NUMRADIA,GLOB_THERM%NFXFLUX)
10809 IF(LCNI2G>0) ALLOCATE(CNI2(LCNI2G))
10811 1 CNI2 ,LCNI2G,ADDCNI2,IPARI, INTBUF_TAB )
10817 LENVOLU = NIMV*NVOLU+LICBAG+LIBAGJET+LIBAGHOL+LIBAGALE
10822 LENTHG = OUTPUT%TH%SITHBUF
10832 ! Allocation and filling of specific ADDCNE and CNE for non-local
10833 IF(NLOC_DMG%IMOD>0) THEN
10834 ! Allocation of ADDCNE for non-local nodes
10835.NOT.
IF(ALLOCATED(NLOC_DMG%ADDCNE)) ALLOCATE(NLOC_DMG%ADDCNE(0:NLOC_DMG%NNOD+1))
10836 NLOC_DMG%ADDCNE(0:NLOC_DMG%NNOD+1) = 0
10837 ! Filling ADDCNE for non-local nodes
10838 CALL BUILD_ADDCNEL_SUB(ADDCNE ,CNE ,NLOC_DMG%ADDCNE,NLOC_DMG%INDX,NLOC_DMG%NNOD)
10839 ! Allocation of CNE for non-local nodes
10840.NOT.
IF(ALLOCATED(NLOC_DMG%CNE)) ALLOCATE(NLOC_DMG%CNE(NLOC_DMG%ADDCNE(NLOC_DMG%NNOD+1)-1))
10841 NLOC_DMG%CNE(1:NLOC_DMG%ADDCNE(NLOC_DMG%NNOD+1)-1) = 0
10842 ! Filling CNE for non-local nodes
10843 CALL BUILD_CNEL_SUB(NLOC_DMG%CNE,NLOC_DMG%ADDCNE,CNE,ADDCNE,NLOC_DMG%INDX,NLOC_DMG%NNOD)
10848.AND.
IF((NSUBDOM>0)(FLG_R2R_ERR==0)) THEN
10849 CALL R2R_CLEAN_INTER(IPARI,INTBUF_TAB,IPARTC,IPARTG,IPARTS,ISOLNOD)
10851 WRITE(ISTDO,'(a)
')' .. multidomains domdec synchronization
'
10852 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,1)
10854 CALL R2R_DOMDEC(IEXLNK,IGRNOD,FRONTB_R2R,DT_R2R,2)
10862 DEALLOCATE(IKINE1LAG)
10878 CALL SET_INTERCEP(IPARI,INTERCEP,1,INTBUF_TAB,ITAB,CEP)
10882.AND.
IF(NSPMD > 1 IDDLEVEL > 0) THEN
10883 CALL SET_FRONT8(IPARI,INTERCEP,INTBUF_TAB,INTERT8,NBT8,ITAB)
10891 CALL PREPARE_INT25(INTBUF_TAB, IPARI, INTERCEP, NRTMT_25)
10892 CALL PREPARE_SPLIT_I25E2E(NSPMD,INTBUF_TAB,IPARI,INTERCEP)
10895 ALLOCATE(ADDCSRECT(NUMNOR+1),CSRECT(4*NRTMT_25),STAT=stat)
10896 IF(STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
10897 . MSGTYPE=MSGERROR,
10899 ADDCSRECT(1:NUMNOR+1)=0
10902 . CALL BUILD_CSRECT(INTBUF_TAB,IPARI,CSRECT,ADDCSRECT)
10906! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10914! /LINE are not used in the engine and the split is wrong in
10915! case of useless line (ie. when a line is defined but not
10916! used by an interface or other stuffs) -->
10917! 2 nodes (defining a segment) can be on 2 different processors
10918! in this case, the segment is not written in the restart file
10919! one could also define the nodes on the same processor but
10920! it will increase the comm.
10921! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10922 CALL LINE_DECOMP(IGRSLIN)
10923!--------------------------------------------
10931 CALL GLOBVARS(IGEO,IXR ,NSTRF )
10932 IF(NPLYMAX > 0)THEN
10933 CALL SPMD_ANIM_PLY_INIT(IGEO, GEO ,IPARG ,IXC ,IXTG ,
10934 . IPARTC,IPARTQ,IPARTG ,STACK )
10940! compute the size of TAG_SCRATCH and check if /INTER/24 or /25 is used
10941 CALL GET_SIZE_INTER24(I24MAXNSNE2,NINTER,NPARI,IPARI,FLAG_24_25)
10942! compute the local number of element
10943 CALL GET_SIZE_NUMNOD_LOCAL(NUMNOD,NUMNOD_L)
10945 ALLOCATE( ALE_ELM(NSPMD) )
10946.AND.
IF( (NUMELS>0)(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) ) THEN
10947 CALL SPLIT_CFD_SOLIDE(NUMELS,ALE_CONNECTIVITY,IXS,ALE_ELM,SIZE_ALE_ELM)
10949 SIZE_ALE_ELM(1:NSPMD) = 0
10951 ! -----------------------------------------
10952 ! reverse connectivity for FVM solver : useful to ensure the parith/on
10953 IF(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) THEN
10954 ALLOCATE( INDX_S(NUMELS) )
10955 ALLOCATE( INDX_Q(NUMELQ) )
10956 ALLOCATE( INDX_TG(NUMELTG) )
10957 ALLOCATE( FACE_ELM_S(6*NUMELS,2) )
10958 ALLOCATE( FACE_ELM_Q(4*NUMELQ,2) )
10959 ALLOCATE( FACE_ELM_TG(3*NUMELTG,2) )
10961 INDX_S(1:NUMELS) = 0
10962 INDX_Q(1:NUMELQ) = 0
10963 INDX_TG(1:NUMELTG) = 0
10964 FACE_ELM_S(1:6*NUMELS,1:2) = 0
10965 FACE_ELM_Q(1:4*NUMELQ,1:2) = 0
10966 FACE_ELM_TG(1:3*NUMELTG,1:2) = 0
10967.AND.
BOOL_ALE_TG = (N2D/=0MULTI_FVM%IS_USED)
10968 CALL MULTI_CONNECTIVITY( INDX_S,INDX_Q,INDX_TG,
10969 1 FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,
10970 2 IXS,IXQ,IXTG,CEP,ALE_CONNECTIVITY,BOOL_ALE_TG)
10973 ALLOCATE( INDX_S(0) )
10974 ALLOCATE( INDX_Q(0) )
10975 ALLOCATE( INDX_TG(0) )
10976 ALLOCATE( FACE_ELM_S(0,0) )
10977 ALLOCATE( FACE_ELM_Q(0,0) )
10978 ALLOCATE( FACE_ELM_TG(0,0) )
10980 ! -----------------------------------------
10982 ! -----------------------------------------
10983 ! split the LOADS structure on the different processors
10984 CALL SPLIT_PCYL(LOADS%NLOAD_CYL,LOADS,LOADS_PER_PROC)
10985 ! -----------------------------------------
10987 ! -----------------------------------------
10988 ! split the BCs data structure
10989 CALL SPLIT_BCS_WALL(BCS_PER_PROC, CEP, SCEP, NSPMD)
10990 CALL SPLIT_BCS_NRF(BCS_PER_PROC, CEP, SCEP, NSPMD)
10991 ! -----------------------------------------
10993 ! -----------------------------------------
10994 ! prepare the rwall splitting
10995 call alloc_constraint_struct(nrwall,nspmd,constraint_struct)
10996 call split_rwall(nrwall,nspmd,nnprw,slprw,nprw,lprw,constraint_struct)
10997 ! -----------------------------------------
11001! -------------------------------------------------------------
11002! RESTART FILE WRITING
11003! if -norst cdl is used or if /RFILE/OFF is used, then
11004! restart files are not generated
11005! -------------------------------------
11006 IF(RESTART_FILE==1) THEN
11009 ALLOCATE(TAG_SKINS6(NUMELS))
11010 CALL SURFEXT_TAGN(IXS ,KNOD2ELS,NOD2ELS ,IXS10 ,TAG_SKINS6,itab)
11013.NOT.
IF( ALLOCATED(PARTSAV)) ALLOCATE(PARTSAV(0))
11014.NOT.
IF( ALLOCATED(ADMSMS)) ALLOCATE(ADMSMS(0))
11015.NOT.
IF( ALLOCATED(DMELC)) ALLOCATE(DMELC(0))
11016.NOT.
IF( ALLOCATED(DMELS)) ALLOCATE(DMELS(0))
11017.NOT.
IF( ALLOCATED(DMELTG)) ALLOCATE(DMELTG(0))
11018.NOT.
IF( ALLOCATED(DMELTR)) ALLOCATE(DMELTR(0))
11019.NOT.
IF( ALLOCATED(DMELP)) ALLOCATE(DMELP(0))
11020.NOT.
IF( ALLOCATED(DMELRT)) ALLOCATE(DMELRT(0))
11021.NOT.
IF( ALLOCATED(RES_SMS)) ALLOCATE(RES_SMS(0))
11022.NOT.
IF( ALLOCATED(DIAG_SMS)) ALLOCATE(DIAG_SMS(0))
11023.NOT.
IF( ALLOCATED(CNE_PXFEM)) ALLOCATE(CNE_PXFEM(0))
11024.NOT.
IF( ALLOCATED(CEL_PXFEM)) ALLOCATE(CEL_PXFEM(0))
11025.NOT.
IF( ALLOCATED(MSZ2)) ALLOCATE(MSZ2(0))
11026.NOT.
IF( ALLOCATED(XFEM_PHANTOM)) ALLOCATE(XFEM_PHANTOM(0))
11027!$OMP PARALLEL PRIVATE(ITASK,P,pMEMFLOW,INDX_NM,NINDX_NM,TAG_NM)
11028!$OMP+ PRIVATE(NINDX_SCRT,INDX_SCRT,TAG_SCRATCH)
11032 ALLOCATE( TAG_NM(NUMNOD) )
11033 ALLOCATE( INDX_NM(NUMNOD) )
11034 ALLOCATE( TAG_SCRATCH(I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) )
11035 ALLOCATE(INDX_SCRT(I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) )
11036 TAG_NM(1:NUMNOD) = 0
11037 INDX_NM(1:NUMNOD) = 0
11038 TAG_SCRATCH(1:I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) = 0
11039 INDX_SCRT(1:I24MAXNSNE2+NUMNOD+NUMELS+NUMFAKENODIGEO) = 0
11041 ALLOCATE(TAG_NM(0))
11042 ALLOCATE(INDX_NM(0))
11043 ALLOCATE( TAG_SCRATCH(0) )
11044 ALLOCATE(INDX_SCRT(0) )
11054#if defined(_OPENMP)
11055 ITASK = OMP_GET_THREAD_NUM()
11058 IF(P > NSPMD) GOTO 221
11059 !Sending clean addresses for unallocated arrays in case P=0
11060 NULLIFY(pMEMFLOW) ; IF(NSPMD > 0) pMEMFLOW => MEMFLOW(1,P) !MEMFLOW(2,1:NSPMD) ; NSPMD =0 => MEMFLOW(1,0) is undefined
11064 1 P ,CEP ,CEL ,IGEO ,MAT_ELEM ,
11065 2 IPM ,ICODE ,ISKEW ,ISKWN ,BID13 ,
11066 3 IBCSLAG ,IPART ,IPARTS ,IPARTQ ,IPARTC ,
11067 4 IPARTT ,IPARTP ,IPARTR ,IPARTG ,DETONATORS ,
11068 5 IPARTX ,NPC ,IXTG ,GROUP_PARAM_TAB,
11069 6 IXTG1 ,IXS ,IXS10 ,IXS20 ,IXS16 ,
11070 7 IXQ ,IXC ,IXT ,IXP ,IXR ,
11071 8 ITAB ,ITABM1 ,GJBUFI ,ALE_CONNECTIVITY%NALE ,
11072 9 ALE_CONNECTIVITY,
11073 A KXX ,IXX ,IBCL ,IBFV ,
11074 B ILAS ,LACCELM ,NNLINK ,LNLINK ,
11075 C IPARG ,IGRV ,LGRAV ,IBVEL ,LBVEL ,
11076 D IACTIV ,FACTIV ,KINET ,IPARI ,NPRW ,
11077 E LPRW ,ICONX ,NPBY ,
11078 F LPBY ,LRIVET ,NSTRF ,LJOINT ,NODPOR ,
11079 G MONVOL ,ICONTACT ,LAGBUF ,
11080 H FR_IAD ,X ,D ,V ,VR ,
11081 I DR ,THKE ,DAMPR ,DAMP ,MS ,
11082 J IN ,TF ,PM ,SKEW ,XFRAME ,
11083 K GEO ,EANI ,BUFMAT ,BUFGEO ,BUFSF ,
11084 L RBMPC ,GJBUFR ,W ,VEUL ,FILL ,
11085 M DFILL ,WB ,DSAVE ,ASAVE ,MSNF ,
11086 N SPBUF ,FORC ,VEL ,FSAV ,FZERO ,
11087 O XLAS ,ACCELM ,FBVEL ,GRAV ,
11088 P FR_WAVE ,FAILWAVE ,PARTS0 ,ELBUF ,
11089 Q RWBUF ,RWSAV ,RBY ,RIVET ,
11090 R SECBUF ,VOLMON ,RCONX ,NLOC_DMG ,
11091 S FVMAIN ,LIBAGALE ,LENTHG ,LBUFMAT ,LBUFGEO ,
11092 T LBUFSF ,SXLAS ,LNOM_OPT ,SILAS ,
11093 U LENVOLU ,NPTS ,CNE ,LCNE ,
11094 V ADDCNE ,CNI2 ,LCNI2G ,ADDCNI2 ,CEPI2 ,
11095 W CELI2 ,I2NSNT ,PROBINT ,DDSTAT(1,P) ,PM1SHF,
11097 Z KXSP ,IXSP ,NOD2SP ,CEPSP ,
11098 a NTHWA ,NAIRWA ,NMNT ,L_MUL_LAG1 ,L_MUL_LAG ,
11099 b LWASPIO ,IPARTSP ,ISPCOND ,PM1SPH ,
11101 d EIGIPM ,EIGIBUF ,EIGRPM ,
11102 e IFLOW ,RFLOW ,pMEMFLOW ,IEXLNK ,FASOLFR ,
11104 j FXBIPM ,FXBRPM ,FXBNOD ,FXBMOD ,FXBGLM ,
11105 k FXBCPM ,FXBCPS ,FXBLM ,FXBFLS ,FXBDLS ,
11106 l FXBDEP ,FXBVIT ,FXBACC ,FXBELM ,FXBSIG ,
11107 m FXBGRVI ,FXBGRVR ,IADLL ,LLL ,IBMPC ,
11108 n LAMBDA ,LRBAGALE ,ISKWP ,NSKWP ,ISENSP ,
11109 o NSENSP ,IACCP ,NACCP ,IPART_STATE ,MCP ,
11110 p TEMP ,UNITAB ,INTSTAMP ,IFRAME ,CLUSTERS ,
11111 q PARTSAV ,IBFTEMP ,FBFTEMP ,IBCV ,
11112 r FCONV ,IRBE3 ,LRBE3 ,FRBE3 ,FRONT_RM ,
11113 s RBYM ,IRBYM ,LNRBYM ,INOISE ,FNOISE ,
11114 t MS0 ,ADMSMS ,NOM_SECT ,ISPSYM ,
11115 u SH4TREE ,SH3TREE ,IPADMESH ,IBFFLUX ,FBFFLUX ,
11116 v SH4TRIM ,SH3TRIM ,PADMESH ,MSC ,MSTG ,
11117 w INC ,INTG ,PTG ,MCPC ,MCPTG ,
11118 x RCONTACT ,ACONTACT ,PCONTACT ,MSCND ,INCND ,
11119 y MSSA ,MSTR ,MSP ,MSRT ,IBCR ,
11120 z FRADIA ,DMELC ,DMELTG ,DMELS ,DMELTR ,
11121 1 DMELP ,DMELRT ,RES_SMS ,ISPHIO ,
11122 2 LPRTSPH ,LONFSPH ,VSPHIO ,SPHVELN ,ALPH ,
11123 3 IFILL ,IMS ,IRBE2 ,LRBE2 ,
11125 9 ZI_PLY ,INOD_PXFEM ,IEL_PXFEM ,ICODEP ,ISKEWP ,
11126 A ADDCNE_PXFEM ,CNE_PXFEM ,CEL_PXFEM ,ITHVAR ,XDP,TABLE ,
11127 B CELSPH ,ICFIELD ,LCFIELD ,CFIELD ,
11128 C MSZ2 ,ITASK ,DIAG_SMS,
11129 D ILOADP ,LLOADP ,LOADP,
11130 E INOD_CRKXFEM ,IEL_CRKXFEM ,ADDCNE_CRKXFEM ,CNE_CRKXFEM ,CEL_CRKXFEM,
11131 F IBUFSSG_IO ,INTERCEP ,IBORDNODE ,IEDGESH ,IBORDEDGE ,
11132 G LINALE ,NODEDGE ,IEDGE ,CEP_CRKXFEM ,IEDGE_TMP ,
11133 H CRKNODIAD ,ELBUF_TAB ,NOM_OPT ,LGAUGE ,GAUGE ,
11134 I IGAUP ,NGAUP ,NODLEVXF ,FRONTB_R2R ,DFLOW ,
11135 J VFLOW ,WFLOW ,SPH2SOL ,SOL2SPH ,IRST ,
11136 K ELCUTC ,NODENR ,KXFENOD2ELC ,ENRTAG ,INTBUF_TAB ,
11137 M I11FLAG ,XFEM_TAB ,LENTHGR ,RTHBUF ,
11138 N IXIG3D ,KXIG3D ,KNOT ,IPARTIG3D ,WIGE ,
11139 O NCRKPART ,INDX_CRK ,CRKLVSET ,CRKSHELL ,CRKSKY ,
11140 P CRKAVX ,CRKEDGE ,SENSORS ,
11141 Q STACK ,XFEM_PHANTOM, INTERT8 ,TAB_UMP ,POIN_UMP ,
11142 R SOL2SPH_TYP ,ADDCSRECT ,CSRECT ,DRAPE ,LOADS ,
11143 S ITAGND ,ICNDS10 ,ADDCNCND ,
11144 T CEPCND ,CELCND ,CNCND ,NATIV_SMS ,I24MAXNSNE ,
11145 U MULTI_FVM ,SEGQUADFR ,INTBUF_FRIC_TAB,SUBSETS ,IGRNOD ,
11146 V IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
11147 W IGRBEAM ,IGRSPRING ,IGRPART ,IGRSURF ,IGRSLIN ,
11148 X POIN_PART_SHELL,POIN_PART_TRI,POIN_PART_SOL,MID_PID_SHELL,MID_PID_TRI ,
11149 Y MID_PID_SOL , TAG_NM ,NINDX_NM ,INDX_NM ,TAG_SCRATCH ,
11150 Z NINDX_SCRT , INDX_SCRT ,FLAG_24_25 ,NUMNOD_L(P) ,TAG_SKN ,
11151 A SKEWS%MULTIPLE_SKEW, IGRSURF_PROC,KNOTLOCPC ,KNOTLOCEL ,ALE_ELM(P),
11152 B SIZE_ALE_ELM(P),PINCH_DATA ,TAG_SKINS6 ,IBCSCYC ,LBCSCYC ,T_MONVOL,
11153 C INDX_S,INDX_Q,INDX_TG,FACE_ELM_S,FACE_ELM_Q,FACE_ELM_TG,NBR_TH_MONVOL, EBCS_TAB,
11154 D KLOADPINTER ,LOADPINTER ,DGAPLOADINT ,S_LOADPINTER, SCEP,DYNAIN_DATA,
11155 E DRAPEG ,USER_WINDOWS ,OUTPUT ,INTERFACES ,NUMBER_LOAD_CYL ,
11156 F LOADS_PER_PROC(P), PYTHON,DPL0CLD,VEL0CLD ,NAMES_AND_TITLES,
11157 G BCS_PER_PROC(P),constraint_struct,glob_therm,PBLAST,RWSTIF_PEN ,SLN_PEN )
11161 DEALLOCATE(TAG_NM,TAG_SCRATCH)
11162 DEALLOCATE(INDX_NM,INDX_SCRT)
11164 DEALLOCATE(TAG_SKINS6)
11165 ENDIF ! <-- end of restart file writing
11166! -------------------------------------------------------------
11168 CALL DEALLOCATE_IGRSURF_SPLIT(T_MONVOL,IGRSURF_PROC)
11169 DEALLOCATE( IGRSURF_PROC )
11171.AND.
IF( (NUMELS>0)(IALE+IEULER+GLOB_THERM%ITHERM+IALELAG/=0) ) CALL DEALLOCATE_SPLIT_CFD_SOLIDE(ALE_ELM)
11173 CALL BCS%DEALLOCATE()
11175 CALL BCS_PER_PROC(P)%DEALLOCATE()
11178 DEALLOCATE( ALE_ELM )
11180 DEALLOCATE( INDX_S )
11181 DEALLOCATE( INDX_Q )
11182 DEALLOCATE( INDX_TG )
11183 DEALLOCATE( FACE_ELM_S )
11184 DEALLOCATE( FACE_ELM_Q )
11185 DEALLOCATE( FACE_ELM_TG )
11191 CALL TRACE_IN1(ERR_MSG,LEN_TRIM(ERR_MSG))
11196 DEALLOCATE(ICONTACT)
11198 IF(ALLOCATED(CEP)) DEALLOCATE(CEP)
11199 IF(ALLOCATED(CEL)) DEALLOCATE(CEL)
11208 DEALLOCATE(ADDCNI2)
11218 DEALLOCATE(IPART_STATE)
11219 DEALLOCATE(EIGIPM, EIGIBUF, EIGRPM)
11220 DEALLOCATE(TAG_SKN)
11221 DEALLOCATE(SKEWS%MULTIPLE_SKEW)
11222.OR..AND.
IF(IDDLEVEL ==1 ((NINTER == 0)(ISMS == 0))) THEN
11223 DEALLOCATE(TAGXREF)
11224 DEALLOCATE(TAGREFSTA)
11231 DEALLOCATE(IBUFSSG_IO)
11232 DEALLOCATE(RESERVEP)
11236 IF(LAG_NCF > 0) THEN
11243 DEALLOCATE(ADDCSRECT)
11245 DEALLOCATE(IGEO_STACK,GEO_STACK)
11246 IF(ALLOCATED(PLY_INFO))DEALLOCATE(PLY_INFO)
11247 IF(ALLOCATED(FXBFILE_TAB)) DEALLOCATE(FXBFILE_TAB)
11249 IF(ALLOCATED(TAB_UMP)) DEALLOCATE(TAB_UMP)
11250 IF(ALLOCATED(TAB_UMP_OLD)) DEALLOCATE(TAB_UMP_OLD)
11251 IF(ALLOCATED(POIN_UMP)) DEALLOCATE(POIN_UMP)
11252 IF(ALLOCATED(POIN_UMP_OLD)) DEALLOCATE(POIN_UMP_OLD)
11254 DEALLOCATE( POIN_PART_SHELL )
11255 DEALLOCATE( POIN_PART_TRI )
11256 DEALLOCATE( POIN_PART_SOL )
11258 IF(ALLOCATED(MID_PID_SHELL(I)%PID1D))DEALLOCATE( MID_PID_SHELL(I)%PID1D )
11259 IF(ALLOCATED(MID_PID_SHELL(I)%COST1D))DEALLOCATE( MID_PID_SHELL(I)%COST1D )
11261 IF(ALLOCATED(MID_PID_SHELL(I)%PID1D))DEALLOCATE( MID_PID_TRI(I)%PID1D )
11262 IF(ALLOCATED(MID_PID_TRI(I)%COST1D))DEALLOCATE( MID_PID_TRI(I)%COST1D )
11264 IF(ALLOCATED(MID_PID_SOL(I,J)%PID1D)) DEALLOCATE( MID_PID_SOL(I,J)%PID1D )
11265 IF(ALLOCATED(MID_PID_SOL(I,J)%COST1D)) DEALLOCATE( MID_PID_SOL(I,J)%COST1D )
11268 DEALLOCATE( MID_PID_SHELL,MID_PID_TRI )
11269 DEALLOCATE( MID_PID_SOL )
11272 IF(ALLOCATED(IXIG3D)) DEALLOCATE(IXIG3D)
11273 IF(ALLOCATED(KXIG3D)) DEALLOCATE(KXIG3D)
11274 IF(ALLOCATED(MSIG3D)) DEALLOCATE(MSIG3D)
11275.AND.
IF(NS10E>0IPARI0/=0) THEN
11278 DEALLOCATE(ADDCNCND)
11279 IF(LCNCND>0) DEALLOCATE(CNCND)
11281 IF(ALLOCATED(ITAGND)) DEALLOCATE(ITAGND)
11282 IF(NS10E>0) DEALLOCATE(ICNDS10)
11283 CALL MONVOL_DEALLOCATE(NVOLU, T_MONVOL)
11284 IF(ALLOCATED(T_MONVOL)) DEALLOCATE(T_MONVOL)
11285 DEALLOCATE(IBCSCYC,LBCSCYC)
11286 IF(NBCSCYC>0) DEALLOCATE(ITAGCYC)
11287 IF(ALLOCATED(FVM_INIVEL)) DEALLOCATE(FVM_INIVEL)
11290 IF(N_SEATBELT > 0) THEN
11292 DEALLOCATE(SEATBELT_TAB(I)%SPRING)
11294 DEALLOCATE(SEATBELT_TAB)
11297 IF(NSLIPRING > 0) THEN
11299 DEALLOCATE(SLIPRING(I)%FRAM)
11301 DEALLOCATE(SLIPRING)
11304 IF(NRETRACTOR > 0) THEN
11306 DEALLOCATE(RETRACTOR(I)%INACTI_NODE)
11308 IF (RETRACTOR(I)%IFUNC(J) > 0) THEN
11309 DEALLOCATE(RETRACTOR(I)%TABLE(J)%X(1)%VALUES)
11310 DEALLOCATE(RETRACTOR(I)%TABLE(J)%X)
11311 DEALLOCATE(RETRACTOR(I)%TABLE(J)%Y%VALUES)
11312 DEALLOCATE(RETRACTOR(I)%TABLE(J)%Y)
11316 DEALLOCATE(RETRACTOR)
11318.OR..AND.
IF((IPART_STACK > 0 IPART_PCOMPP > 0) NDRAPE > 0) DEALLOCATE(IWORK_T)
11320 IF(ALLOCATED(MPARAM_R2R))THEN
11321 DO I=1,NUMMAT ; CALL MPARAM_R2R(I)%DESTRUCT() ; ENDDO
11322 DEALLOCATE(MPARAM_R2R)
11325 ! -----------------------------------------
11326 ! deallocation of constraint_struct
11327 call dealloc_constraint_struct(nrwall,constraint_struct)
11328 ! -----------------------------------------
11333 CALL PRINTSTSZ(DETONATORS)
11338 IF(RESTART_FILE==1) THEN
11339 CALL DDPRINT(DDSTAT, MEMFLOW)
11342 WRITE(IOUT,*) CHECK_MESSAGE(3)(1:len_trim(CHECK_MESSAGE(3)))
11347 WRITE(ISTDO,'(a)
')TITRE(48)
11350 DEALLOCATE(KNOD2ELS,KNOD2ELC,KNOD2ELTG,
11351 . NOD2ELS ,NOD2ELC ,NOD2ELTG,
11352 . KNOD2EL1D,NOD2EL1D,KNOD2ELIG3D,
11353 . NOD2ELIG3D,KNOD2ELQ,NOD2ELQ)
11355 DEALLOCATE(MSC,MSTG,MSSA,MSTR,MSP,MSRT)
11357 DEALLOCATE(MCP,TEMP)
11358 DEALLOCATE(IBCV, FCONV, IBCR, FRADIA, IBFTEMP, FBFTEMP, IBFFLUX, FBFFLUX)
11360 DEALLOCATE(RBYM ,IRBYM ,LNRBYM,WEIGHT_RM)
11361 DEALLOCATE(MS_PLY,ZI_PLY,ICODE,ISKEW)
11363 IF(ALLOCATED(KNOTLOCPC))DEALLOCATE(KNOTLOCPC)
11364 IF(ALLOCATED(KNOTLOCEL))DEALLOCATE(KNOTLOCEL)
11367 IF(ALLOCATED(IPMAS))DEALLOCATE(IPMAS)
11369 IF(ICRACK3D > 0) THEN
11370 DEALLOCATE(INOD_CRKXFEM,IEL_CRKXFEM)
11371 DEALLOCATE(CNE_CRKXFEM)
11372 DEALLOCATE(CEL_CRKXFEM)
11373 DEALLOCATE(CEP_CRKXFEM)
11374 DEALLOCATE(IEDGESH)
11375 DEALLOCATE(IBORDEDGE)
11376 DEALLOCATE(NODEDGE)
11378 DEALLOCATE(IBORDNODE)
11380 IF(ALLOCATED(IEDGE_TMP)) DEALLOCATE(IEDGE_TMP)
11381 IF(ALLOCATED(ELCUTC)) DEALLOCATE(ELCUTC)
11382 IF(ALLOCATED(NODENR)) DEALLOCATE(NODENR)
11383 IF(ALLOCATED(KXFENOD2ELC)) DEALLOCATE(KXFENOD2ELC)
11384 IF(ALLOCATED(ENRTAG)) DEALLOCATE(ENRTAG)
11385 IF(ALLOCATED(ADDCNE_CRKXFEM))DEALLOCATE(ADDCNE_CRKXFEM)
11390 DEALLOCATE(ADDCNE_PXFEM)
11393 DEALLOCATE(ISOLNOD)
11394 DEALLOCATE(ISOLOFF)
11395 DEALLOCATE(ISHEOFF)
11396 DEALLOCATE(ITRUOFF)
11397 DEALLOCATE(IPOUOFF)
11398 DEALLOCATE(IRESOFF)
11399 DEALLOCATE(ITRIOFF)
11400 DEALLOCATE(IGRNRBY)
11401 DEALLOCATE(IQUAOFF)
11406 DEALLOCATE(IFRONT%P,IFRONT%IENTRY,IENTRY2)
11407 DEALLOCATE(DFLOW,VFLOW,WFLOW)
11408 DEALLOCATE(PERMUTATION%SOLID)
11409 IF(ALLOCATED(FILLSOL)) DEALLOCATE(FILLSOL)
11410 IF(ALLOCATED(SH3ANG)) DEALLOCATE(SH3ANG)
11411 IF(ALLOCATED(SH4ANG)) DEALLOCATE(SH4ANG)
11412 IF(ALLOCATED(NATIV_SMS)) DEALLOCATE(NATIV_SMS)
11413 IF(ALLOCATED(MULTI_FVM%VEL)) DEALLOCATE(MULTI_FVM%VEL)
11414 IF(ALLOCATED(MULTI_FVM%ACC)) DEALLOCATE(MULTI_FVM%ACC)
11415 CALL ALE_CONNECTIVITY%ALE_DEALLOCATE_CONNECTIVITY()
11416.OR.
IF(IPART_STACK > 0 IPART_PCOMPP > 0) DEALLOCATE(STACK_INFO)
11417 IF(ALLOCATED(IPRELOAD)) DEALLOCATE(IPRELOAD)
11418 IF(ALLOCATED(PRELOAD)) DEALLOCATE(PRELOAD)
11419 IF(ALLOCATED(IFLAG_BPRELOAD)) DEALLOCATE(IFLAG_BPRELOAD)
11420 IF(ALLOCATED(IPRELOAD_FUN)) DEALLOCATE(IPRELOAD_FUN)
11421 IF(ALLOCATED(EOS_TAG))DEALLOCATE(EOS_TAG)
11422 CALL C_DELETE_HASH(H_NODE)
11423 CALL DEALLOCATE_DETONATORS(DETONATORS)
11424 IF(ALLOCATED(XSEED)) DEALLOCATE(XSEED)
11425 IF(ALLOCATED(ALEA)) DEALLOCATE(ALEA)
11426 IF(ALLOCATED(IRAND)) DEALLOCATE(IRAND)
11427 IF(ALLOCATED(SENSORS%SENSOR_TAB)) DEALLOCATE(SENSORS%SENSOR_TAB )
11428 IF(ALLOCATED(SENSORS%LOGICAL_SENSORS_LIST)) DEALLOCATE(SENSORS%LOGICAL_SENSORS_LIST)
11429 IF(ALLOCATED(DAMP_RANGE_PART)) DEALLOCATE(DAMP_RANGE_PART)
11431 CALL EBCS_TAB%destroy()
11432.AND..NOT.
IF(NINIMAP1D > 0 MULTI_FVM%IS_USED) THEN
11433 DO KK = 1, NINIMAP1D
11434 DEALLOCATE(INIMAP1D(KK)%TAGNODE)
11437 DEALLOCATE(INIMAP1D)
11439.AND..NOT.
IF(NINIMAP2D > 0 MULTI_FVM%IS_USED) THEN
11440 DO KK = 1, NINIMAP2D
11441 DEALLOCATE(INIMAP2D(KK)%TAGNODE)
11444 DEALLOCATE(INIMAP2D)
11447 CALL INVERTED_GROUP_DEALLOC(INV_GROUP)
11449 CALL DEALLOCATE_JOINT( )
11456 IF(ALLOCATED( DGAPINT )) DEALLOCATE(DGAPINT)
11458 IF(ALLOCATED(DPL0CLD)) DEALLOCATE(DPL0CLD)
11459 IF(ALLOCATED(VEL0CLD)) DEALLOCATE(VEL0CLD)
11460 IF(ALLOCATED(EBCS_TAG_CELL_SPMD)) DEALLOCATE(EBCS_TAG_CELL_SPMD)
11465!||====================================================================
11466!|| set_ibufssg_io ../starter/source/starter/lectur.F
11467!||--- called by ------------------------------------------------------
11468!|| lectur ../starter/source/starter/lectur.F
11469!||--- calls -----------------------------------------------------
11470!|| ifrontplus ../starter/source/spmd/node/frontplus.F
11471!||--- uses -----------------------------------------------------
11472!||====================================================================
11473 SUBROUTINE SET_IBUFSSG_IO(ISPHIO, IGRSURF, IBUFSSG_IO)
11481#include "implicit_f.inc"
11485#include "com01_c.inc"
11486#include "com04_c.inc"
11487#include "sphcom.inc"
11488#include "units_c.inc"
11489#include "warn_c.inc"
11490#include "param_c.inc"
11494 INTEGER ISPHIO(NISPHIO,*),
11495 . IBUFSSG_IO(SIBUFSSG_IO),
11496 . N,J,NSEG,IN1,IN2,IN3,IN4,
11497 . ISU,PROC,IAD2,ITYPE
11498 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
11505 ITYPE = ISPHIO(1,N)
11506 IF(ISPHIO(12,N)==0) THEN
11508 NSEG= IGRSURF(ISU)%NSEG
11509 ISPHIO(10,N) = NSEG
11510 ISPHIO(11,N) = IAD2
11512 IN1=IGRSURF(ISU)%NODES(J+1,1)
11513 IN2=IGRSURF(ISU)%NODES(J+1,2)
11514 IN3=IGRSURF(ISU)%NODES(J+1,3)
11515 IN4=IGRSURF(ISU)%NODES(J+1,4)
11516 IBUFSSG_IO(IAD2+NIBSPH*J) = IN1
11517 IBUFSSG_IO(IAD2+NIBSPH*J+1) = IN2
11518 IBUFSSG_IO(IAD2+NIBSPH*J+2) = IN3
11519 IBUFSSG_IO(IAD2+NIBSPH*J+3) = IN4
11521 CALL IFRONTPLUS(IN1,PROC)
11522 CALL IFRONTPLUS(IN2,PROC)
11523 CALL IFRONTPLUS(IN3,PROC)
11524 CALL IFRONTPLUS(IN4,PROC)
11527 IAD2 = IAD2 + 4*NSEG
11528 ELSEIF(ISPHIO(12,N)==2) THEN
11533 CALL IFRONTPLUS(IN1,PROC)
11534 CALL IFRONTPLUS(IN2,PROC)
11535 CALL IFRONTPLUS(IN3,PROC)
11542!||====================================================================
11543!|| init_permutation ../starter/source/starter/lectur.F
11544!||--- called by ------------------------------------------------------
11545!|| lectur ../starter/source/starter/lectur.F
11546!||--- uses -----------------------------------------------------
11547!|| reorder_mod ../starter/share/modules1/reorder_mod.F
11548!||====================================================================
11549 SUBROUTINE INIT_PERMUTATION()
11558#include "implicit_f.inc"
11562#include "com04_c.inc"
11569 PERMUTATION%SOLID(I)=I
11572 PERMUTATION%SHELL(I)=I
11575 PERMUTATION%TRIANGLE(I)=I
11580!||====================================================================
11581!|| tet4_10 ../starter/source/starter/lectur.F
11582!||--- called by ------------------------------------------------------
11583!|| lectur ../starter/source/starter/lectur.F
11584!||====================================================================
11585 SUBROUTINE TET4_10(IGEO,ITET4_10)
11589#include "implicit_f.inc"
11593#include "com04_c.inc"
11594#include "param_c.inc"
11598 INTEGER IGEO(NPROPGI,*),ITET4_10
11602 INTEGER I,IGTYP,ITET4
11607.OR..AND.
IF((IGTYP==14IGTYP==6)ITET4==1) ITET4_10 = 1
subroutine allocxfem(ixc, ixtg, iparg, lcne_crkxfem, crklvset, crksky, crkavx, crkedge, xfem_phantom)
subroutine checkrby(rby, npby, lpby, itab, ikine, iddlevel, nom_opt, numsl)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
subroutine deallocate_elbuf(elbuf_tab, igeo, iparg, ixs, ixc, ixtg, flag_xfem, ixt, ixp, ixr, kxx)
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine hm_pre_read_preload(nstrf, lsubmodel)
subroutine hm_pre_read_link(num, igrnod, lsubmodel)
subroutine hm_read_box(ibox, unitab, itabm1, iskn, skew, x, rtrans, lsubmodel)
subroutine hm_read_func2d(func2d, lsubmodel, unitab)
subroutine hm_read_move_funct(npc, pld, nfunct, table, ntable, funcrypt, unitab, lsubmodel)
subroutine hm_read_mpc0(len, lsubmodel)
subroutine hm_read_mpc(rbuf, ibufnc, ibufnn, ibufdl, ibufsk, iskn, itab, itabm, lag_ncf, lag_nkf, lag_nhf, ikine, ikine1lag, nom_opt, itagnd, lsubmodel, unitab)
subroutine hm_read_perturb(mat_param, ipart, rnoise, ipartc, ipartg, ipartsp, igrpart, ipm, iparts, perturb, qp_iperturb, qp_rperturb, lsubmodel, unitab)
subroutine hm_read_rbody_lagmul(rbyl, npbyl, lpbyl, igrnod, lsubmodel, itab, itabm1, ikine, ikine1lag, nom_opt)
subroutine hm_read_sphio(isphio, vsphio, ipart, igrsurf, nod2sp, ipartsp, itab, x, mfi, lwaspio, itabm1, unitab, lsubmodel, rtrans, nrtrans)
subroutine hm_read_table2(ntable, table, nfunct, unitab, lsubmodel)
subroutine hm_read_table1(ntable, table, nfunct, npc, pld, nom_opt, unitab, lsubmodel)
subroutine iniebcs(ale_connectivity, iflag, igrsurf, ixs, ixq, ixtg, pm, igeo, x, sensors, ivolu, multi_fvm_is_used, ebcs_tab, ebcs_tag_cell_spmd, itab)
subroutine inimu3(pm, ix, f, df)
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine, lsigi, lsigsp, srnoise, nprw, lprw, rwstif_pen, sln_pen)
subroutine 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 lagm_nhf(ncf, iadll, jll, lll, jcihf)
subroutine lec_inistate(ixs, ixq, ixc, ixt, ixp, ixr, geo, pm, kxsp, ixtg, index, itri, nsigsh, igeo, ipm, nsigs, nsigsph, ksysusr, ptshel, ptsh3n, ptsol, ptquad, ptsph, numel, nsigrs, unitab, isolnodd00, lsubmodel, rtrans, idrape, nsigi, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, igrbric, map_tables, iparg, stack, iworksh, mat_param, numsph, nisp)
subroutine 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
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 nodm11(pm, ixs, ixq, icode)
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
subroutine precrkxfem(iparg, ixc, ixtg, ncrkxfe, iel_crkxfem, inod_crkxfem, addcne_crkxfem)
subroutine preread_rbody_lagmul(slpbyl, igrnod, lsubmodel)
void split(mapping_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, FLOAT *, PORD_INT)
subroutine qgrtails(ixq, pm, iparg, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartq, itr1, igrsurf, igrquad, mat_param, igeo, ipm, iquaoff, inivol, print_flag)
subroutine rgrtails(ixr, iparg, geo, eadd, igeo, nd, dd_iad, idx, inum, index, cep, ipartr, itr1, igrsurf, igrspring, iresoff, tagprt_sms, nod2el1d, ipm, clusters, r_skew, print_flag, itagprld_spring, preload_a, npreload_a)
subroutine init_mat_weight(nummat)
subroutine split_cfd_solide(numels, ale_connectivity, ixs, ale_elm, size_ale_elm)
subroutine applysort2fvm(t_monvol)
subroutine fvmesh0(t_monvol, xyzini, ixs, ixc, ixtg, pm, ipm, igrsurf, xyzref, nb_node)
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 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, check_used)
subroutine trace_in1(my_char, ilen)
subroutine state_admesh(ipart, ipartc, iparttg, ixc, ixtg, sh4tree, sh3tree, sh4trim, sh3trim, lsubmodel)
subroutine t3grtails(ixtg, pm, iparg, geo, eadd, nd, iparttg, dd_iad, idx, inum, index, cep, thk, xnum, itr1, igrsurf, igrsh3n, icnod, igeo, ipm, ixtg1, ipart, sh3tree, nod2eltg, itrioff, sh3trim, tagprt_sms, iworksh, stack, drape, rnoise, inivol, mat_param, sh3ang, drapeg, print_flag, ptsh3n)
subroutine tgrhead(ixt, pm, geo, inum, isel, itr1, eadd, index, itri, ipartt, nd, igrsurf, igrtruss, cep, xep, itruoff, tagprt_sms, itagprld_truss)
subroutine tgrtails(ixt, iparg, pm, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartt, itr1, igrsurf, igrtruss, itruoff, tagprt_sms, nod2el1d, print_flag, itagprld_truss, preload_a, npreload_a)
subroutine update_weight_rbe3(nelemint, ifiend, s_lrbe3, nrbe3l, nrbe3, lrbe3, irbe3, inter_cand)