30 . IPARG ,IXC ,IXTG ,INOD_CRK ,NODLEVXF,
31 . INDX_CRK,NCRKPART,CRKSHELL)
39#include "implicit_f.inc"
45#include "com_xfem1.inc"
51 INTEGER IPARG(NPARG,*),IXC(NIXC,*),(NIXTG,*),INOD_CRK(*),
52 . nodlevxf(*),indx_crk(*)
53 TYPE () ,
DIMENSION(NLEVMAX) :: CRKSHELL
57 INTEGER NG,ITY,LFT,LLT,N,I,J,IPRT,NEL,NFT,IXFEM,ILEV,NCOUNT,
59 INTEGER TAG_ARRAY(NUMNOD),TAG_SHELLS_C(NUMELC),TAG_SHELLS_TG(NUMELTG),
60 . NLEVXF,NN(4),TYPE_SHELLS_C(NUMELC),TYPE_SHELLS_TG(NUMELTG)
63 crkshell(ilev)%CRKNUMSHELL = 0
64 crkshell(ilev)%CRKNUMSH4 = 0
65 crkshell(ilev)%CRKNUMSH3 = 0
96 nn(1) = inod_crk(ixc(2,n))
97 nn(2) = inod_crk(ixc(3,n))
98 nn(3) = inod_crk(ixc(4,n))
99 nn(4) = inod_crk(ixc(5,n))
101 nodlevxf(nn(1)) = nlevxf
102 nodlevxf(nn(2)) = nlevxf
103 nodlevxf(nn(3)) = nlevxf
104 nodlevxf(nn(4)) = nlevxf
106 tag_shells_c(n) = ilev
108 crkshell(ilev)%CRKNUMSHELL = crkshell(ilev)%CRKNUMSHELL+1
109 crkshell(ilev)%CRKNUMSH4 = crkshell(ilev)%CRKNUMSH4+1
111 ELSEIF (ity == 7)
THEN
117 tag_array(ixtg(2,n))=1
118 tag_array(ixtg(3,n))=1
119 tag_array(ixtg(4,n))=1
121 nn(1) = inod_crk(ixtg(2,n))
122 nn(2) = inod_crk(ixtg(3,n))
123 nn(3) = inod_crk(ixtg(4,n))
125 nodlevxf(nn(1)) = nlevxf
126 nodlevxf(nn(2)) = nlevxf
127 nodlevxf(nn(3)) = nlevxf
129 tag_shells_tg(n) = ilev
130 type_shells_tg(n) = 3
131 crkshell(ilev)%CRKNUMSHELL = crkshell(ilev)%CRKNUMSHELL+1
132 crkshell(ilev)%CRKNUMSH3 = crkshell(ilev)%CRKNUMSH3+1
140 shcount = crkshell(ilev)%CRKNUMSHELL
141 ALLOCATE (crkshell(ilev)%PHANTOML(shcount))
142 ALLOCATE (crkshell(ilev)%ELTYPE(shcount))
146 IF (tag_shells_c(i) > 0)
THEN
148 crkshell(ilev)%PHANTOML(shcount)=i
149 crkshell(ilev)%ELTYPE(shcount)=type_shells_c(i)
154 IF (tag_shells_tg(i) > 0)
THEN
156 crkshell(ilev)%PHANTOML(shcount)=i
157 crkshell(ilev)%ELTYPE(shcount)=type_shells_tg(i)
168 ALLOCATE(crkshell(ilev)%PHANTOMG
170 DO i=1,crkshell(ilev)%CRKNUMSHELL
172 crkshell(ilev)%PHANTOMG(i)=ncount
182 IF (crkshell(ilev)%CRKNUMSHELL > 0)
THEN
183 ncrkpart = ncrkpart + 1
184 indx_crk(ncrkpart) = ilev
194 ALLOCATE(crkshell(ilev)%XNODEG(4,crkshell(ilev)%CRKNUMSHELL))
195 ALLOCATE(crkshell(ilev)%XNODEL(4,crkshell(ilev)%CRKNUMSHELL))
198 DO i=1,crkshell(ilev)%CRKNUMSHELL
201 ncountg = ncountg + 1
202 crkshell(ilev)%XNODEG(j,i) = ncountg
203 crkshell(ilev)%XNODEL(j,i) = ncount
208 ncrknodg = 4*crkshell(1)%CRKNUMSHELL