33 . ELCUTC ,IAD_CRKTG,IEL_CRKTG ,INOD_CRK,NXLAY ,
34 . NODEDGE,ENRTAG ,CRKEDGE ,XEDGE3N )
37 use element_mod ,
only : nixtg
41#include "implicit_f.inc"
50#include "com_xfem1.inc"
55 INTEGER IPARG(NPARG,*),IXTG(NIXTG,*),NFT,JFT,JLT,NXLAY,
56 . ELCUTC(2,*),IAD_CRKTG(3,*),XEDGE3N(3,*),IEL_CRKTG(*),
57 . inod_crk(*),nodedge(2,*),enrtag(numnod,*)
58 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
62 INTEGER I,K,II,ELCRK,ILEV,LAYCUT,IECUT,ILAY,IXEL,
63 . IR,NELCRK,EDGE,IADC1,IADC2,IADC3,NOD1,NOD2,ELCRKTG,IED,
64 . ie10,ie20,ie1,ie2,k1,k2,en1,en2,en3
65 INTEGER JCT(MVSIZ),ENR0(3),NS(3),D(3)
71 IF (elcutc(1,i+nft) /= 0)
THEN
78 IF (nelcrk == 0)
RETURN
84 elcrktg = iel_crktg(i+nft)
85 elcrk = elcrktg + ecrkxfec
86 laycut = crkedge(ilay)%LAYCUT(elcrk)
88 iadc1 = iad_crktg(1,elcrktg)
89 iadc2 = iad_crktg(2,elcrktg)
90 iadc3 = iad_crktg(3,elcrktg)
103 IF (en1 /= 0) enr0(1) = en1
104 IF (en2 /= 0) enr0(2) = en2
105 IF (en3 /= 0) enr0(3) = en3
108 edge = xedge3n(k,elcrktg)
109 ied = crkedge(ilay)%IEDGETG(k,elcrktg)
110 iecut = crkedge(ilay)%ICUTEDGE(edge)
113 IF (iecut == 3 .AND. ied > 0)
THEN
114 nod1 = nodedge(1,edge)
115 nod2 = nodedge(2,edge)
116 ie10 = crkedge(ilay)%EDGEENR(1,edge)
117 ie20 = crkedge(ilay)%EDGEENR(2,edge)
118 IF (nod1 == ixtg(k+1,i+nft) .and.
119 . nod2 == ixtg(d(k)+1,i+nft))
THEN
124 ELSE IF (nod2 == ixtg(k+1,i+nft) .and.
125 . nod1 == ixtg(d(k)+1,i+nft))
THEN
133 IF(ie1 /= 0) enrtag(ns(k1),abs(ie1))
134 . =
max(enrtag(ns(k1),abs(ie1)),ie10)
135 IF(ie2 /= 0) enrtag(ns(k2),abs(ie2))
136 . =
max(enrtag(ns(k2),abs(ie2)),ie20)
subroutine upenric1_n3(iparg, ixtg, nft, jft, jlt, elcutc, iad_crktg, iel_crktg, inod_crk, nxlay, nodedge, enrtag, crkedge, xedge3n)