30 . NUMNOD_L,NUMNODCRKXFE_L,INDEX,PROC,
31 . IXC,IXTG,CEP_XFE,NODLOCAL,NODLEVXF_L,
32 . NODLEVXF,NODGLOBXFE,NOD_XFE_L,CRKSHELL)
38#include "implicit_f.inc"
42#include "com_xfem1.inc"
47 INTEGER NODGLOB(*),INOD_CRKXFEM(*),INOD_L(*),
48 . NUMNOD_L,NUMNODCRKXFE_L,INDEX(*),PROC,
49 . IXC(NIXC,*),IXTG(NIXTG,*),CEP_XFE(*),
50 . nodlocal(*),nodlevxf_l(*),nodlevxf(*),
51 . nodglobxfe(*),nod_xfe_l
52 TYPE (XFEM_SHELL_) ,
DIMENSION(NLEVMAX) :: CRKSHELL
56 INTEGER I,NL_L,II,JJ,J,K,NOD,ELTYP,ELEM,
57 . INOD_CRK,NOD_XFE_G,NELCRK
58 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODTAG
61 ALLOCATE( nodtag(0:numnod_l+1) )
67 DO i=1,crkshell(k)%CRKNUMSHELL
68 elem = crkshell(k)%PHANTOML(i)
69 eltyp = crkshell(k)%ELTYPE(i)
70 IF (cep_xfe(i) == proc)
THEN
75 IF (inod_crkxfem(nod) > 0)
THEN
76 nod_xfe_g = crkshell(k)%XNODEG(j,i)
77 nod_xfe_l = nod_xfe_l + 1
78 nodglobxfe(nod_xfe_l) = nod_xfe_g
82 ELSEIF (eltyp == 3)
THEN
86 IF(inod_crkxfem(nod) > 0)
THEN
87 nod_xfe_g = crkshell(k)%XNODEG(j,i)
88 nod_xfe_l = nod_xfe_l + 1
89 nodglobxfe(nod_xfe_l) = nod_xfe_g
96 nod_xfe_g = crkshell(k)%XNODEG(4,i)
97 nod_xfe_l = nod_xfe_l + 1
98 nodglobxfe(nod_xfe_l) = nod_xfe_g
102 nelcrk = nelcrk + crkshell(k)%CRKNUMSHELL
104 numnodxfe = nod_xfe_l
106 nodtag(1:numnod_l) = 0
108 DO i=1,crkshell(k)%CRKNUMSHELL
109 eltyp = crkshell(k)%ELTYPE(i)
110 elem = crkshell(k)%PHANTOML(i)
111 IF (cep_xfe(i) == proc)
THEN
115 nodtag(nodlocal(nod))=nod
117 ELSEIF (eltyp == 3)
THEN
120 nodtag(nodlocal(nod))=nod
130 IF (inod_crkxfem(nod) > 0)
THEN
133 index(nl_l) = inod_crkxfem(nod)
134 inod_crk = inod_crkxfem(nod)
135 nodlevxf_l(nl_l) = nodlevxf(inod_crk)
140 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)