36 . NODEDGE ,IXC ,IXTG ,XEDGE4N ,XEDGE3N ,
37 . IADC_CRK ,IEL_CRK ,INOD_CRK ,ITAB )
43#include "implicit_f.inc"
49#include "com_xfem1.inc"
54 INTEGER IPARG(NPARG,*),IGROUC(*),IADC_CRK(*),IEL_CRK(*),INOD_CRK(*),
55 . elcutc(2,*),nodedge(2,*),ixc(nixc,*),ixtg(nixtg,*),itab(*),
56 . xedge4n(4,*),xedge3n(3,*)
57 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
61 INTEGER IG,ITY,NG,NEL,NFT,ITG1,ITG2,IXFEM,NXLAY,GOFF,XOFF
70 IF (ixfem == 0 .or. goff == 1 .or. xoff == 0) cycle
79 ELSEIF (ity == 7)
THEN
82 CALL upxvit_t1(nel ,nft ,nxlay ,elcutc(1,itg1) ,
83 . iel_crk(itg1) ,iadc_crk(itg2))
97 IF (ixfem == 0 .or. goff == 1 .or. xoff == 0) cycle
104 CALL upxvit_c2(nel ,nft ,nxlay ,ixc ,xedge4n ,
105 . crkedge ,nodedge ,iel_crk ,iadc_crk ,inod_crk ,
107 ELSEIF (ity == 7)
THEN
109 itg2 = 1 + ecrkxfec*4
110 CALL upxvit_t2(nel ,nft ,nxlay ,ixtg ,xedge3n,
111 . crkedge ,nodedge ,iel_crk(itg1),iadc_crk(itg2),inod_crk ,
112 . elcutc(1,itg1) ,itab )
128 . IEL_CRK ,IADC_CRK )
134#include
"implicit_f.inc"
138#include "com_xfem1.inc"
142 INTEGER NEL,NFT,NXLAY
143 INTEGER ELCUTC(2,*),IADC_CRK(4,*),IEL_CRK(*)
147 INTEGER I,II,K,ILAY,IXEL,ILEV,IL,ICUT,ELEM,ELCRK,IAD,ITRI,EN,EN0,EN1
153 elcrk = iel_crk(elem)
154 icut = elcutc(1,elem)
155 IF (elcrk > 0 .and. icut > 0)
THEN
163 iad = iadc_crk(k,elcrk)
166 IF (en0 < 0 .and. en > 0)
THEN
182 ELSEIF (itri > 0)
THEN
186 iad = iadc_crk(k,elcrk)
189 IF (en0 < 0 .and. en > 0)
THEN
228#include "implicit_f.inc"
232#include "com_xfem1.inc"
236 INTEGER NEL,NFT,NXLAY
237 INTEGER ELCUTG(2,*),IADC_XTG(3,*),IEL_XTG(*)
241 INTEGER I,II,K,IG,,ILAY,IXEL,ILEV,IL,ICUT,ELEM
248 elcrktg = iel_xtg(elem)
249 icut = elcutg(1,elem)
250 IF (elcrktg > 0 .and. icut > 0)
THEN
251 elcrk = elcrktg + ecrkxfec
258 iad = iadc_xtg(k,elcrktg)
261 IF (en0 < 0 .and. en > 0)
THEN
277 ELSEIF (itri > 0)
THEN
281 iad = iadc_xtg(k,elcrktg)
284 IF (en0 < 0 .and. en > 0)
THEN
316 . CRKEDGE ,NODEDGE ,IEL_CRK ,IADC_CRK ,INOD_CRK ,
323#include "implicit_f.inc"
327#include "com_xfem1.inc"
331 INTEGER NEL,NFT,NXLAY
332 INTEGER IXC(NIXC,*),INOD_CRK(*),IADC_CRK(4,*),IEL_CRK(*),ELCUTC(2,*),
333 . NODEDGE(2,*),XEDGE4N(4,*),ITAB(*)
338 INTEGER I,II,K,KK,NSX,NN,IEL,ILAY,IXEL,ILEV,IL_SEND,COUNT,NOD1,NOD2,
339 . ICUT,ELCRK,IADS,IADR,EN,EN0,EN1,,BOUNDEDGE
347 IF (elcrk > 0 .and. icut > 0)
THEN
352 kk = iadc_crk(k,elcrk)
356 IF (en0 <= 0 .and. en > 0)
THEN
364 IF (iads > 0 .and. il_send > 0 .and. count > 0.and.
365 . iadr == kk .and. iads /= kk)
THEN
367 en1 =
crklvset(il_send)%ENR0(1,iads)
371 edge = xedge4n(k,elcrk)
372 boundedge = crkedge(ilay)%IBORDEDGE(edge)
373 IF (boundedge == 2)
THEN
374 nod1 = nodedge(1,edge)
375 nod2 = nodedge(2,edge)
377 IF (nn /= nod1 .and. nn /= nod2)
THEN
417 . CRKEDGE ,NODEDGE ,IEL_XTG ,IADC_XTG ,INOD_CRK ,
424#include "implicit_f.inc"
428#include "com_xfem1.inc"
432 INTEGER NEL,NFT,NXLAY
433 INTEGER IXTG(NIXTG,*),INOD_CRK(*),IADC_XTG(3,*),IEL_XTG(*),ELCUTG(2,*),
434 . NODEDGE(2,*),XEDGE3N(3,*),ITAB(*)
435 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
439 INTEGER I,II,K,KK,NSX,NN,IEL,ILAY,IXEL,ILEV,IL,COUNT,NOD1,NOD2,
440 . icut,elcrk,elcrktg,iads,iadr,en,en0,en1,edge,boundedge
446 elcrktg = iel_xtg(iel)
448 IF (elcrktg > 0 .and. icut > 0)
THEN
449 elcrk = elcrktg + ecrkxfec
454 kk = iadc_xtg(k,elcrktg)
457 IF (en0 <= 0 .and. en > 0)
THEN
465 IF (iads > 0 .and. il > 0 .and. count > 0.and.
466 . iadr == kk .and. iads /= kk)
THEN
472 edge = xedge3n(k,elcrktg)
473 boundedge = crkedge(ilay)%IBORDEDGE(edge)
474 IF (boundedge == 2)
THEN
475 nod1 = nodedge(1,edge)
476 nod2 = nodedge(2,edge)
478 IF (nn /= nod1 .and. nn /= nod2)
THEN
subroutine upxvit_c2(nel, nft, nxlay, ixc, xedge4n, crkedge, nodedge, iel_crk, iadc_crk, inod_crk, elcutc, itab)
subroutine upxvit_t2(nel, nft, nxlay, ixtg, xedge3n, crkedge, nodedge, iel_xtg, iadc_xtg, inod_crk, elcutg, itab)
subroutine crk_vitesse2(iparg, ngrouc, igrouc, elcutc, crkedge, nodedge, ixc, ixtg, xedge4n, xedge3n, iadc_crk, iel_crk, inod_crk, itab)