30 . NUMNOD_L,NUMNODCRKXFE_L,INDEX,PROC,
31 . IXC,IXTG,CEP_XFE,NODLOCAL,NODLEVXF_L,
32 . NODLEVXF,NODGLOBXFE,NOD_XFE_L,CRKSHELL)
35 use element_mod ,
only : nixc,nixtg
39#include "implicit_f.inc"
43#include "com_xfem1.inc"
48 INTEGER NODGLOB(*),INOD_CRKXFEM(*),INOD_L(*),
49 . NUMNOD_L,NUMNODCRKXFE_L,(*),PROC,
50 . IXC(NIXC,*),IXTG(NIXTG,*),CEP_XFE(*),
51 . nodlocal(*),nodlevxf_l(*),nodlevxf(*),
52 . nodglobxfe(*),nod_xfe_l
53 TYPE (XFEM_SHELL_) ,
DIMENSION(NLEVMAX) :: CRKSHELL
57 INTEGER I,NL_L,J,K,NOD,ELTYP,ELEM,
58 . INOD_CRK,NOD_XFE_G,NELCRK
59 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODTAG
62 ALLOCATE( nodtag(0:numnod_l+1) )
68 DO i=1,crkshell(k)%CRKNUMSHELL
69 elem = crkshell(k)%PHANTOML(i)
70 eltyp = crkshell(k)%ELTYPE(i)
71 IF (cep_xfe(i) == proc)
THEN
76 IF (inod_crkxfem(nod) > 0)
THEN
77 nod_xfe_g = crkshell(k)%XNODEG(j,i)
78 nod_xfe_l = nod_xfe_l + 1
79 nodglobxfe(nod_xfe_l) = nod_xfe_g
83 ELSEIF (eltyp == 3)
THEN
87 IF(inod_crkxfem(nod) > 0)
THEN
88 nod_xfe_g = crkshell(k)%XNODEG(j,i)
89 nod_xfe_l = nod_xfe_l + 1
90 nodglobxfe(nod_xfe_l) = nod_xfe_g
97 nod_xfe_g = crkshell(k)%XNODEG(4,i)
98 nod_xfe_l = nod_xfe_l + 1
99 nodglobxfe(nod_xfe_l) = nod_xfe_g
103 nelcrk = nelcrk + crkshell(k)%CRKNUMSHELL
105 numnodxfe = nod_xfe_l
107 nodtag(1:numnod_l) = 0
109 DO i=1,crkshell(k)%CRKNUMSHELL
110 eltyp = crkshell(k)%ELTYPE(i)
111 elem = crkshell(k)%PHANTOML(i)
112 IF (cep_xfe(i) == proc)
THEN
116 nodtag(nodlocal(nod))=nod
118 ELSEIF (eltyp == 3)
THEN
121 nodtag(nodlocal(nod))=nod
131 IF (inod_crkxfem(nod) > 0)
THEN
134 index(nl_l) = inod_crkxfem(nod)
135 inod_crk = inod_crkxfem(nod)
136 nodlevxf_l(nl_l) = nodlevxf(inod_crk)
141 numnodcrkxfe_l = nl_l
subroutine c_ncrkxfem(nodglob, inod_crkxfem, inod_l, numnod_l, numnodcrkxfe_l, index, proc, ixc, ixtg, cep_xfe, nodlocal, nodlevxf_l, nodlevxf, nodglobxfe, nod_xfe_l, crkshell)