32 SUBROUTINE fvbric01(IBUF, ELEM, NTGI, NB_NODE, NBRIC, IXS,
43 use element_mod ,
only : nixs
47#include "implicit_f.inc"
56 INTEGER,
INTENT(IN) :: NBRIC, NTGI, NB_NODE, TBRIC(2, NBRIC), IXS(NIXS, *)
57 INTEGER,
INTENT(IN) :: IBUF(*), ELEM(3, NTGI)
58 INTEGER,
INTENT(INOUT) :: TFAC(12, NBRIC)
62 INTEGER :: II, KK, KKK, KKKK, JJ, CONNECT_MAX, NODEID, COUNT, ELID, ELID1
63 INTEGER :: NSEG, IFACE, ITYPE, NNODE, NSURFNODE, SUM
64 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IFLAG
65 INTEGER,
DIMENSION(:, :),
ALLOCATABLE :: N_E_CONNECT, N_E_CONNECT_LOCID
66 INTEGER,
TARGET :: REDIRT(4), REDIRP(6), REDIRB(8), REDIRPY(5),
67 . nod8(6), nod3(4), nod6(5), nod5(5),
68 . fac8(4,6), fac4(3,4), fac6(4,5), fac5(4,5), nface(4)
69 INTEGER,
DIMENSION(:),
POINTER :: REDIR, NOD
70 INTEGER,
DIMENSION(:,:),
POINTER :: FAC
87 DATA nod8 /4,4,4,4,4,4/
98 INTEGER,
TARGET :: nothing(1,1)
103 redir => nothing(:,1)
134 ALLOCATE(iflag(nb_node))
155 redir => redirpy(1:5)
162 nodeid = ixs(1 + redir(kk), elid)
163 iflag(nodeid) = iflag(nodeid) + 1
167 connect_max = maxval(iflag(1:nb_node))
170 ALLOCATE(n_e_connect(nb_node, connect_max + 1))
171 ALLOCATE(n_e_connect_locid(nb_node, connect_max + 1))
172 n_e_connect(1:nb_node, 1:connect_max + 1) = 0
173 n_e_connect_locid(1:nb_node, 1:connect_max + 1) = 0
193 redir => redirpy(1:5)
198 nodeid = ixs(1 + redir(kk), elid)
199 count = n_e_connect(nodeid, 1)
201 n_e_connect(nodeid, 1) = count
202 n_e_connect(nodeid, count + 1) = elid
203 n_e_connect_locid(nodeid, count + 1) = ii
215 kkk = ibuf(elem(kk, ii))
219 kkk = ibuf(elem(kk, ii))
220 DO jj = 1, n_e_connect(kkk, 1)
221 elid = n_e_connect(kkk, 1 + jj)
228 fac => fac8(1:4, 1:6)
234 fac => fac4(1:3, 1:4)
240 fac => fac6(1:4, 1:5)
245 redir => redirpy(1:5)
246 fac => fac5(1:4, 1:5)
253 nodeid = ixs(1 + redir(kkkk), elid)
254 sum = sum + iflag(nodeid)
256 IF (sum == nsurfnode)
THEN
259 DO iface = 1, nface(itype)
261 DO kkkk = 1, nod(iface)
262 sum = sum + iflag(ixs(1 + fac(kkkk, iface), elid))
264 IF (sum == nsurfnode)
THEN
271 IF (.NOT. face_ok)
THEN
274 elid1 = n_e_connect_locid(kkk, 1 + jj)
275 tfac(2 * iface - 1, elid1) = -2
283 kkk = ibuf(elem(kk, ii))
290 DEALLOCATE(n_e_connect)
291 DEALLOCATE(n_e_connect_locid)