30 SUBROUTINE c_crkedge(IELC_L ,IELTG_L ,IEDGECRK_L,NUMEDGES ,
31 . IEDGESH4 ,IEDGESH3,CEP ,P ,
32 . IBORDEDGE,IBORDEDGE_L,NUMEDGES_L,NODEDGE,
33 . NODEDGE_L,NODLOCAL,IEDGESH4_L,IEDGESH3_L,
34 . IEL_CRK ,IEDGE_L ,IEDGE ,ECRKXFEC ,
35 . EDGELOCAL,NBDDEDGE_L,IEDGE_TMP,EDGEGLOBAL)
42#include "implicit_f.inc"
56 INTEGER IELC_L(*),IELTG_L(*),IEDGECRK_L(*),NUMEDGES,
57 . iedgesh4(4,*),iedgesh3(3,*),cep(*),p,ibordedge(*),
58 . ibordedge_l(*),numedges_l,nodedge(2,*),nodedge_l(2,*
59 . nodlocal(*),iedgesh4_l(4,*),iedgesh3_l(3,*),iel_crk(*),
60 . iedge_l(*),iedge(*),ecrkxfec,edgelocal(*),
61 . nbddedge_l,iedge_tmp(3,*),edgeglobal(*)
65 INTEGER ,K,OFFC,OFFTG,IED_L,IED_GL,NEXT,IEL_L,IC1,IC2,JCRK,
66 . IEL_L1,PROC,EDGEPROC
67 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAG_EDGE
69 OFFC = numels + numelq
70 offtg = offc + numelc + numelt + numelp + numelr
72 ALLOCATE(itag_edge(numedges))
86 IF (cep(i+offc) == p)
THEN
88 IF (iel_crk(i) > 0)
THEN
93 ied_gl = iedgesh4(k,jcrk)
95 IF (itag_edge(ied_gl) == 0)
THEN
98 ibordedge_l(ied_l) = ibordedge(ied_gl)
99 edgeglobal(ied_l) = ied_gl
100 edgelocal(ied_gl) = ied_l
101 itag_edge(ied_gl) = 1
103 ic1 = nodedge(1,ied_gl)
104 ic2 = nodedge(2,ied_gl)
107 nodedge_l(1,ied_l) = ic1
108 nodedge_l(2,ied_l) = ic2
110 iedge_l(ied_l) = iedge(ied_gl)
113 iedgesh4_l(k,iel_l) = edgelocal(ied_gl)
115 iedgecrk_l(k + next) = edgelocal(ied_gl)
128 IF(cep(i+offtg) == p)
THEN
130 IF(iel_crk(i+numelc) > 0)
THEN
133 jcrk = iel_crk(i+numelc) - ecrkxfec
135 ied_gl = iedgesh3(k,jcrk)
137 IF(itag_edge(ied_gl) == 0)
THEN
140 ibordedge_l(ied_l) = ibordedge(ied_gl)
141 edgeglobal(ied_l) = ied_gl
142 edgelocal(ied_gl) = ied_l
143 itag_edge(ied_gl) = 1
145 ic1 = nodedge(1,ied_gl)
146 ic2 = nodedge(2,ied_gl)
149 nodedge_l(1,ied_l) = ic1
150 nodedge_l(2,ied_l) = ic2
152 iedge_l(ied_l) = iedge(ied_gl)
155 iedgesh3_l(k,iel_l) = edgelocal(ied_gl)
157 iedgecrk_l(k + next) = edgelocal(ied_gl)
173 IF (iedge_tmp(3,ied_gl) < 0)
THEN
174 ic1 = nodedge(1,ied_gl)
175 ic2 = nodedge(2,ied_gl)
177 IF((nlocal(ic1,proc)==1).AND.
178 . (nlocal(ic2,proc)==1))
THEN
182 IF(nlocal(ic1,i)==1.AND.
183 . nlocal(ic2,i)==1)
THEN
184 nbddedge_l = nbddedge_l + 1
186 IF(iedge_tmp(2,ied_gl) == 0)
THEN
188 iedge_tmp(1,ied_gl) = edgeproc
189 iedge_tmp(2,ied_gl) = 1
200 DEALLOCATE(itag_edge)
subroutine c_crkedge(ielc_l, ieltg_l, iedgecrk_l, numedges, iedgesh4, iedgesh3, cep, p, ibordedge, ibordedge_l, numedges_l, nodedge, nodedge_l, nodlocal, iedgesh4_l, iedgesh3_l, iel_crk, iedge_l, iedge, ecrkxfec, edgelocal, nbddedge_l, iedge_tmp, edgeglobal)