40 . IPARG ,IXC ,IXTG ,NGROUC ,IGROUC ,
41 . ELCUTC ,IADC_CRK ,IEL_CRK ,INOD_CRK ,ADDCNE_CRK,
42 . X ,KNOD2ELC ,NODEDGE ,CRKNODIAD,IAD_EDGE ,
43 . FR_EDGE ,FR_NBEDGE,NODLEVXF ,CRKEDGE ,XEDGE4N ,
48 use element_mod ,
only : nixc,nixtg
52#include "implicit_f.inc"
59#include "com_xfem1.inc"
61#include "vect01_c.inc"
65 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXTG(NIXTG,*),NGROUC,IGROUC(*),
66 . ELCUTC(2,*),IADC_CRK(*),IEL_CRK(*),INOD_CRK(*),XEDGE4N(4,*),
67 . XEDGE3N(3,*),ADDCNE_CRK(*),KNOD2ELC(*),NODEDGE(2,*),
70TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
71 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP,NXEL) :: XFEM_TAB
72 TYPE (XFEM_EDGE_) ,
DIMENSION(NXLAYMAX) :: CRKEDGE
76 INTEGER I,K,IG,NG,JFT,JLT,NEL,IXFEM,N,ITG1,,FLAG,
77 .
SIZE,lsdrc,icut,iedge,elcrk,elcrktg,elcut,ilay
78 INTEGER NODFTSK,NODLTSK
87 CALL crk_coord_ini(addcne_crk,inod_crk,nodftsk,nodltsk,x,nodlevxf)
93 knod2elc(n) = addcne_crk(n+1)-addcne_crk(n)
97 IF (nlevset == 0)
RETURN
111 IF (ixfem == 0) cycle
112 IF (ity /= 3 .and. ity /=7 ) cycle
115 nxlay = elbuf_tab(ng)%NLAY
125 CALL enrichc_ini(elbuf_tab(ng) ,xfem_tab(ng,1:nxel),
126 . ixc ,nft ,jft ,jlt ,nxlay ,
127 . iadc_crk ,iel_crk ,inod_crk ,elcutc ,nodedge ,
128 . crknodiad ,knod2elc ,x ,crkedge ,xedge4n )
130 ELSEIF (ity == 7)
THEN
132 . ixtg ,nft ,jft ,jlt ,nxlay ,
133 . iadc_crk(itg2),iel_crk(itg1),inod_crk,elcutc(1,itg1),nodedge ,
134 . crknodiad ,knod2elc ,x ,crkedge ,xedge3n )
147 IF (off == 1)
GOTO 200
148 IF (ixfem == 0)
GOTO 200
149 IF (ity/=3 .AND. ity/=7)
GOTO 200
161 pp1 = (ilay-1)*nxel + 1
163 elcrk = iel_crk(i+nft)
168 iedge = xedge4n(k,elcrk)
170 IF (iedge > 0) icut = crkedge(ilay)%ICUTEDGE(iedge)
171 IF (icut == 2) crkedge(ilay)%ICUTEDGE(iedge) = 1
176 ELSE IF (ity == 7)
THEN
178 pp1 = (ilay-1)*nxel + 1
180 elcrktg = iel_crk(i+nft+numelc)
181 elcrk = elcrktg + ecrkxfec
186 iedge = xedge3n(k,elcrktg)
188 IF (iedge > 0) icut = crkedge(ilay)%ICUTEDGE(iedge)
189 IF (icut == 2) crkedge(ilay)%ICUTEDGE(iedge) = 1
203 lsdrc = fr_nbedge(nspmd+1)
subroutine enrichc_ini(elbuf_str, xfem_str, ixc, nft, jft, jlt, nxlay, iadc_crk, iel_crk, inod_crk, elcutc, nodedge, crknodiad, knod2elc, x, crkedge, xedge4n)
subroutine enrichtg_ini(elbuf_str, ixtg, nft, jft, jlt, nxlay, iad_crktg, iel_crktg, inod_crk, elcutc, nodedge, crknodiad, knod2elc, x, crkedge, xedge3n)
subroutine inixfem(elbuf_tab, xfem_tab, iparg, ixc, ixtg, ngrouc, igrouc, elcutc, iadc_crk, iel_crk, inod_crk, addcne_crk, x, knod2elc, nodedge, crknodiad, iad_edge, fr_edge, fr_nbedge, nodlevxf, crkedge, xedge4n, xedge3n)