33 . IPARG ,IXC ,NFT ,JFT ,JLT ,
34 . ELCUTC ,IADC_CRK,IEL_CRK,INOD_CRK,IXFEM,
41 use element_mod ,
only : nixc
45#include "implicit_f.inc"
54#include "com_xfem1.inc"
58 INTEGER IPARG(NPARG,*),IXC(NIXC,*),NFT,JFT,JLT,IXFEM,
59 . ELCUTC(2,*),IADC_CRK(4,*),IEL_CRK(*),XEDGE4N(4,*),
61 TYPE(elbuf_struct_),
TARGET ,
DIMENSION(NXEL) :: XFEM_TAB
62 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
66 INTEGER I,K,ELCRK,IADC1,IADC2,IADC3,IADC4,LAYCUT,
67 . IR,IS,IT,ILEV,ILAY,IXEL,NXLAY,NCUT,NELCRK,ELCUT,IECUT,EDGE
69 my_real,
DIMENSION(:) ,
POINTER :: xoff
74 IF (elcutc(1,i+nft) /= 0)
THEN
79 IF (nelcrk == 0)
RETURN
86 nxlay = xfem_tab(ixel)%NLAY
88 ilev = nxel*(ilay-1) + ixel
90 xoff => xfem_tab(ixel)%BUFLY(ilay)%LBUF(ir,is,it)%OFF
91 ELSEIF (nxlay== 1)
THEN
92 xoff => xfem_tab(ixel)%GBUF%OFF
97 elcrk = iel_crk(i+nft)
101 IF (xoff(i) == zero)
THEN
102 iadc1 = iadc_crk(1,elcrk)
103 iadc2 = iadc_crk(2,elcrk)
104 iadc3 = iadc_crk(3,elcrk)
105 iadc4 = iadc_crk(4,elcrk)
113 edge = xedge4n(k,elcrk)
114 iecut = crkedge(ilay)%ICUTEDGE(edge)
115 IF (iecut /= 0) crkedge(ilay)%ICUTEDGE(edge) = 1
118 laycut = crkedge(ilay)%LAYCUT(elcrk)
119 IF (abs(laycut) == 1) crkedge(ilay)%LAYCUT(elcrk) = 2
137 . IPARG ,IXTG ,NFT ,JFT ,JLT ,
138 . ELCUTC ,IAD_CRKTG,IEL_CRKTG,INOD_CRK,IXFEM,
145 use element_mod ,
only : nixtg
149#include "implicit_f.inc"
153#include "mvsiz_p.inc"
157#include "com_xfem1.inc"
158#include "param_c.inc"
162 INTEGER IPARG(NPARG,*),IXTG(NIXTG,*),NFT,JFT,JLT,IXFEM,
163 . ELCUTC(2,*),IAD_CRKTG(3,*),XEDGE3N(3,*),IEL_CRKTG(*),
166 TYPE(ELBUF_STRUCT_),
TARGET ,
DIMENSION(NXEL) :: XFEM_TAB
167 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
171 INTEGER I,K,ELCRK,ELCRKTG,ELCUT,IADC(3),
172 . jct(mvsiz),nelcrk,edge,laycut,iecut,ncut,
173 . ir,is,it,ilay,nxlay,ixel,ilev
174 my_real,
DIMENSION(:) ,
POINTER :: xoff
179 IF (elcutc(1,i+nft) /= 0)
THEN
184 IF (nelcrk == 0)
RETURN
191 nxlay = xfem_tab(ixel)%NLAY
194 xoff => xfem_tab(ixel)%BUFLY(ilay)%LBUF(ir,is,it)%OFF
195 ELSEIF (nxlay== 1)
THEN
196 xoff => xfem_tab(ixel)%GBUF%OFF
199 ilev = nxel*(ilay-1) + ixel
203 elcrktg = iel_crktg(i+nft)
204 elcrk = elcrktg + ecrkxfec
208 iadc(1) = iad_crktg(1,elcrktg)
209 iadc(2) = iad_crktg(2,elcrktg)
210 iadc(3) = iad_crktg(3,elcrktg)
212 IF (xoff(i) == zero)
THEN
219 edge = xedge3n(k,elcrktg)
220 iecut = crkedge(ilay)%ICUTEDGE(edge)
221 IF (iecut /= 0) crkedge(ilay)%ICUTEDGE(edge) = 1
224 laycut = crkedge(ilay)%LAYCUT(elcrk)
225 IF (abs(laycut) == 1) crkedge(ilay)%LAYCUT(elcrk) = 2
subroutine upenric3_n4(xfem_tab, iparg, ixc, nft, jft, jlt, elcutc, iadc_crk, iel_crk, inod_crk, ixfem, crkedge, xedge4n)
subroutine upenric3_n3(xfem_tab, iparg, ixtg, nft, jft, jlt, elcutc, iad_crktg, iel_crktg, inod_crk, ixfem, crkedge, xedge3n)