31 SUBROUTINE fvelsurf(IBUF, ELEM, ELEM_ID, IXC, IXTG, NEL,
32 . ELTG, MATTG, NB_NODE, FLAG)
33 use element_mod ,
only : nixc,nixtg
37#include "implicit_f.inc"
45 INTEGER IXC(NIXC,*), IXTG(NIXTG,*)
46 INTEGER IBUF(*), ELEM(3,*), ELEM_ID(*)
47 INTEGER,
DIMENSION(NEL),
INTENT(INOUT) :: ELTG, MATTG
54 INTEGER I, J, JJ, ICMAX, NC, I1, I2, I3, IFOUND
56 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CNS
57 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAG
61 ALLOCATE(itag(nb_node))
80 icmax=
max(icmax,itag(i))
83 ALLOCATE(cns(nb_node,1+icmax*2))
93 cns(jj,1+2*(nc-1)+1)=1
94 cns(jj,1+2*(nc-1)+2)=i
103 cns(jj,1+2*(nc-1)+1)=2
104 cns(jj,1+2*(nc-1)+2)=i
120 ity=cns(i1,1+2*(j-1)+1)
121 jj=cns(i1,1+2*(j-1)+2)
127 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
128 IF (.NOT. flag) ifound=numelq+jj
130 IF(jj == elem_id(i)) ifound=numelq+jj
142 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
143 IF (.NOT. flag) ifound=numelc+jj
145 IF (jj == elem_id(i)) ifound=numelq+numelc+jj
154 IF (ifound/=0)
GOTO 100
156 ity=cns(i2,1+2*(j-1)+1)
157 jj=cns(i2,1+2*(j-1)+2)
163 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
164 IF (.NOT. flag) ifound=numelq+jj
166 IF (jj == elem_id(i)) ifound=numelq+jj
178 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
179 IF (.NOT. flag) ifound=numelc+jj
181 IF( jj == elem_id(i)) ifound=numelq+numelc+jj
190 IF (ifound/=0)
GOTO 100
192 ity=cns(i3,1+2*(j-1)+1)
193 jj=cns(i3,1+2*(j-1)+2)
199 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
200 IF (.NOT. flag) ifound=numelq+jj
202 IF (jj == elem_id(i)) ifound=numelq+jj
214 IF (itag(i1)==1.AND.itag(i2)==1.AND.itag(i3)==1)
THEN
215 IF (.NOT. flag) ifound=numelc+jj
217 IF (jj == elem_id(i)) ifound=numelq+numelc+jj
239 ELSEIF (j>numelc)
THEN
240 mattg(i) =ixtg(1,j-numelc)
248 ELSEIF (j>numelc)
THEN
249 mattg(i) =ixtg(1,j-numelc)
subroutine fvelsurf(ibuf, elem, elem_id, ixc, ixtg, nel, eltg, mattg, nb_node, flag)