30 SUBROUTINE fvelsurf(IBUF, ELEM, ELEM_ID, IXC, IXTG, NEL,
31 . ELTG, MATTG, NB_NODE, FLAG)
35#include "implicit_f.inc"
43 INTEGER (NIXC,*), IXTG(NIXTG,*)
44 INTEGER IBUF(*), ELEM(3,*), ELEM_ID(*)
45 INTEGER,
DIMENSION(NEL),
INTENT(INOUT) :: ELTG, MATTG
52 INTEGER I, J, JJ, ICMAX, NC, I1, I2, I3, IFOUND
54 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CNS
55 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAG
59 ALLOCATE(itag(nb_node))
78 icmax=
max(icmax,itag(i))
81 ALLOCATE(cns(nb_node,1+icmax*2))
91 cns(jj,1+2*(nc-1)+1)=1
92 cns(jj,1+2*(nc-1)+2)=i
101 cns(jj,1+2*(nc-1)+1)=2
102 cns(jj,1+2*(nc-1)+2)=i
118 ity=cns(i1,1+2*(j-1)+1)
119 jj=cns(i1,1+2*(j-1)+2)
125 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
126 IF (.NOT. flag) ifound=numelq+jj
128 IF(jj == elem_id(i)) ifound=numelq+jj
140 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
141 IF (.NOT. flag) ifound=numelc+jj
143 IF (jj == elem_id(i)) ifound=numelq+numelc+jj
152 IF (ifound/=0)
GOTO 100
154 ity=cns(i2,1+2*(j-1)+1)
155 jj=cns(i2,1+2*(j-1)+2)
161 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
162 IF (.NOT. flag) ifound=numelq+jj
164 IF (jj == elem_id(i)) ifound=numelq+jj
176 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
177 IF (.NOT. flag) ifound=numelc+jj
179 IF( jj == elem_id(i)) ifound=numelq+numelc+jj
188 IF (ifound/=0)
GOTO 100
190 ity=cns(i3,1+2*(j-1)+1)
191 jj=cns(i3,1+2*(j-1)+2)
197 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
198 IF (.NOT. flag) ifound=numelq+jj
200 IF (jj == elem_id(i)) ifound=numelq+jj
212 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
213 IF (.NOT. flag) ifound=numelc+jj
215 IF (jj == elem_id(i)) ifound=numelq+numelc+jj
237 ELSEIF (j>numelc)
THEN
238 mattg(i) =ixtg(1,j-numelc)
246 ELSEIF (j>numelc)
THEN
247 mattg(i) =ixtg(1,j-numelc)
subroutine fvelsurf(ibuf, elem, elem_id, ixc, ixtg, nel, eltg, mattg, nb_node, flag)