37 . NODEDGE ,IXC ,IXTG ,XEDGE4N ,XEDGE3N ,
38 . IADC_CRK ,IEL_CRK ,INOD_CRK ,ITAB )
41 use element_mod ,
only : nixc,nixtg
45#include "implicit_f.inc"
51#include "com_xfem1.inc"
56 INTEGER IPARG(NPARG,*),IGROUC(*),IADC_CRK(*),IEL_CRK(*),INOD_CRK(*),
57 . elcutc(2,*),nodedge(2,*),ixc(nixc,*),ixtg(nixtg,*),itab(*),
58 . xedge4n(4,*),xedge3n(3,*)
59 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
63 INTEGER IG,ITY,NG,NEL,NFT,ITG1,ITG2,IXFEM,NXLAY,GOFF,XOFF
72 IF (ixfem == 0 .or. goff == 1 .or. xoff == 0) cycle
81 ELSEIF (ity == 7)
THEN
84 CALL upxvit_t1(nel ,nft ,nxlay ,elcutc(1,itg1) ,
85 . iel_crk(itg1) ,iadc_crk(itg2))
99 IF (ixfem == 0 .or. goff == 1 .or. xoff == 0) cycle
106 CALL upxvit_c2(nel ,nft ,nxlay ,ixc ,xedge4n ,
107 . crkedge ,nodedge ,iel_crk ,iadc_crk ,inod_crk ,
109 ELSEIF (ity == 7)
THEN
111 itg2 = 1 + ecrkxfec*4
112 CALL upxvit_t2(nel ,nft ,nxlay ,ixtg ,xedge3n,
113 . crkedge ,nodedge ,iel_crk(itg1),iadc_crk(itg2),inod_crk ,
114 . elcutc(1,itg1) ,itab )
130 . IEL_CRK ,IADC_CRK )
136#include "implicit_f.inc"
140#include "com_xfem1.inc"
144 INTEGER NEL,NFT,NXLAY
145 INTEGER ELCUTC(2,*),IADC_CRK(4,*),IEL_CRK(*)
149 INTEGER I,II,K,ILAY,IXEL,ILEV,IL,ICUT,ELEM,ELCRK,IAD,ITRI,EN,EN0,EN1
155 elcrk = iel_crk(elem)
156 icut = elcutc(1,elem)
157 IF (elcrk > 0 .and. icut > 0)
THEN
165 iad = iadc_crk(k,elcrk)
168 IF (en0 < 0 .and. en > 0)
THEN
184 ELSEIF (itri > 0)
THEN
188 iad = iadc_crk(k,elcrk)
191 IF (en0 < 0 .and. en > 0)
THEN
230#include "implicit_f.inc"
234#include "com_xfem1.inc"
239 INTEGER ELCUTG(2,*),IADC_XTG(3,*),(*)
243 INTEGER I,II,K,ILAY,IXEL,ILEV,IL,ICUT,ELEM,ELCRK,ELCRKTG,
244 . IAD,ITRI,EN,EN0,EN1
250 elcrktg = iel_xtg(elem)
251 icut = elcutg(1,elem)
252 IF (elcrktg > 0 .and. icut > 0)
THEN
253 elcrk = elcrktg + ecrkxfec
260 iad = iadc_xtg(k,elcrktg)
263 IF (en0 < 0 .and. en > 0)
THEN
279 ELSEIF (itri > 0)
THEN
283 iad = iadc_xtg(k,elcrktg)
286 IF (en0 < 0 .and. en > 0)
THEN
319 . CRKEDGE ,NODEDGE ,IEL_CRK ,IADC_CRK ,INOD_CRK ,
323 use element_mod ,
only : nixc
327#include "implicit_f.inc"
331#include "com_xfem1.inc"
335 INTEGER NEL,NFT,NXLAY
336 INTEGER IXC(NIXC,*),INOD_CRK(*),IADC_CRK(4,*),IEL_CRK(*),ELCUTC(2,*),
337 . NODEDGE(2,*),XEDGE4N(4,*),ITAB(*)
338 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
342 INTEGER I,II,K,KK,NSX,NN,IEL,ILAY,IXEL,ILEV,IL_SEND,COUNT,NOD1,NOD2,
343 . ICUT,ELCRK,IADS,IADR,EN,EN0,EN1,EDGE,BOUNDEDGE
351 IF (elcrk > 0 .and. icut > 0)
THEN
356 kk = iadc_crk(k,elcrk)
360 IF (en0 <= 0 .and. en > 0)
THEN
368 IF (iads > 0 .and. il_send > 0 .and. count > 0.and.
369 . iadr == kk .and. iads /= kk)
THEN
371 en1 =
crklvset(il_send)%ENR0(1,iads)
375 edge = xedge4n(k,elcrk)
376 boundedge = crkedge(ilay)%IBORDEDGE(edge)
377 IF (boundedge == 2)
THEN
378 nod1 = nodedge(1,edge)
379 nod2 = nodedge(2,edge)
381 IF (nn /= nod1 .and. nn /= nod2)
THEN
422 . CRKEDGE ,NODEDGE ,IEL_XTG ,IADC_XTG ,INOD_CRK ,
426 use element_mod ,
only : nixtg
430#include "implicit_f.inc"
434#include "com_xfem1.inc"
438 INTEGER NEL,NFT,NXLAY
439 INTEGER IXTG(NIXTG,*),INOD_CRK(*),IADC_XTG(3,*),IEL_XTG(*),ELCUTG(2,*),
440 . NODEDGE(2,*),XEDGE3N(3,*),ITAB(*)
441 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
445 INTEGER I,II,K,KK,NSX,NN,IEL,ILAY,IXEL,ILEV,IL,COUNT,NOD1,NOD2,
446 . icut,elcrk,elcrktg,iads,iadr,en,en0,en1,edge,boundedge
452 elcrktg = iel_xtg(iel)
454 IF (elcrktg > 0 .and. icut > 0)
THEN
455 elcrk = elcrktg + ecrkxfec
460 kk = iadc_xtg(k,elcrktg)
463 IF (en0 <= 0 .and. en > 0)
THEN
471 IF (iads > 0 .and. il > 0 .and. count > 0.and.
472 . iadr == kk .and. iads /= kk)
THEN
478 edge = xedge3n(k,elcrktg)
479 boundedge = crkedge(ilay)%IBORDEDGE(edge)
480 IF (boundedge == 2)
THEN
481 nod1 = nodedge(1,edge)
482 nod2 = nodedge(2,edge)
484 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_velocity2(iparg, ngrouc, igrouc, elcutc, crkedge, nodedge, ixc, ixtg, xedge4n, xedge3n, iadc_crk, iel_crk, inod_crk, itab)