30 . IPARG ,IXC ,IXTG ,INOD_CRK ,NODLEVXF,
31 . INDX_CRK,NCRKPART,CRKSHELL)
36 use element_mod ,
only : nixc,nixtg
40#include "implicit_f.inc"
46#include "com_xfem1.inc"
52 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXTG(NIXTG,*),INOD_CRK(*),
53 . nodlevxf(*),indx_crk(*)
54 TYPE (XFEM_SHELL_) ,
DIMENSION(NLEVMAX) :: CRKSHELL
58 INTEGER ,ITY,LFT,LLT,N,I,J,NEL,NFT,IXFEM,ILEV,NCOUNT,
60 INTEGER TAG_ARRAY(NUMNOD),TAG_SHELLS_C(NUMELC),(NUMELTG),
61 . NLEVXF,NN(4),TYPE_SHELLS_C(NUMELC),TYPE_SHELLS_TG(NUMELTG)
64 crkshell(ilev)%CRKNUMSHELL = 0
65 crkshell(ilev)%CRKNUMSH4 = 0
66 crkshell(ilev)%CRKNUMSH3 = 0
97 nn(1) = inod_crk(ixc(2,n))
98 nn(2) = inod_crk(ixc(3,n))
99 nn(3) = inod_crk(ixc(4,n))
100 nn(4) = inod_crk(ixc(5,n))
102 nodlevxf(nn(1)) = nlevxf
103 nodlevxf(nn(2)) = nlevxf
104 nodlevxf(nn(3)) = nlevxf
105 nodlevxf(nn(4)) = nlevxf
107 tag_shells_c(n) = ilev
109 crkshell(ilev)%CRKNUMSHELL = crkshell(ilev)%CRKNUMSHELL+1
110 crkshell(ilev)%CRKNUMSH4 = crkshell(ilev)%CRKNUMSH4+1
118 tag_array(ixtg(2,n))=1
119 tag_array(ixtg(3,n))=1
120 tag_array(ixtg(4,n))=1
122 nn(1) = inod_crk(ixtg(2,n))
123 nn(2) = inod_crk(ixtg(3,n))
124 nn(3) = inod_crk(ixtg(4,n))
126 nodlevxf(nn(1)) = nlevxf
127 nodlevxf(nn(2)) = nlevxf
128 nodlevxf(nn(3)) = nlevxf
130 tag_shells_tg(n) = ilev
131 type_shells_tg(n) = 3
132 crkshell(ilev)%CRKNUMSHELL = crkshell(ilev)%CRKNUMSHELL+1
133 crkshell(ilev)%CRKNUMSH3 = crkshell(ilev)%CRKNUMSH3+1
141 shcount = crkshell(ilev)%CRKNUMSHELL
142 ALLOCATE (crkshell(ilev)%PHANTOML(shcount))
143 ALLOCATE (crkshell(ilev)%ELTYPE(shcount))
147 IF (tag_shells_c(i) > 0)
THEN
149 crkshell(ilev)%PHANTOML(shcount)=i
150 crkshell(ilev)%ELTYPE(shcount)=type_shells_c(i)
155 IF (tag_shells_tg(i) > 0)
THEN
157 crkshell(ilev)%PHANTOML(shcount)=i
158 crkshell(ilev)%ELTYPE(shcount)=type_shells_tg(i)
169 ALLOCATE(crkshell(ilev)%PHANTOMG(crkshell(ilev)%CRKNUMSHELL))
171 DO i=1,crkshell(ilev)%CRKNUMSHELL
173 crkshell(ilev)%PHANTOMG(i)=ncount
183 IF (crkshell(ilev)%CRKNUMSHELL > 0)
THEN
184 ncrkpart = ncrkpart + 1
185 indx_crk(ncrkpart) = ilev
195 ALLOCATE(crkshell(ilev)%XNODEG(4,crkshell(ilev)%CRKNUMSHELL))
196 ALLOCATE(crkshell(ilev)%XNODEL(4,crkshell(ilev)%CRKNUMSHELL))
199 DO i=1,crkshell(ilev)%CRKNUMSHELL
202 ncountg = ncountg + 1
203 crkshell(ilev)%XNODEG(j,i) = ncountg
204 crkshell(ilev)%XNODEL(j,i) = ncount
209 ncrknodg = 4*crkshell(1)%CRKNUMSHELL