32 SUBROUTINE tsurftag(IXS ,IXS10 ,IGRSURF,FLAG ,NSEG ,
33 2 KNOD2ELS,NOD2ELS,N1 ,N2 ,N3 ,
35 use element_mod ,
only : nixs
44#include "implicit_f.inc"
52 INTEGER IXS(NIXS,*),IXS10(6,*),
53 . KNOD2ELS(*), NOD2ELS(*)
54 INTEGER FLAG, NSEG,N1,N2,N3
56 TYPE (SURF_) :: IGRSURF
60 INTEGER I,J,K,IE,IE10,NNS,ELEM,FACET,IORD,FC,ELEM8,
61 . MIDNOD(3,4),FACES(6,4),FACES10(3,16),FACE(3),
62 . fcmid10(3),fc10(3),iseg,nseg0
68 DATA faces/2,4,6,2,4,6,
81 DO i=knod2els(n1)+1,knod2els(n1+1)
83 IF(numels8 < ie .AND. ie <= numels8+numels10)
THEN
86 IF(ixs(faces(k,j),ie)==n1.AND.ixs(faces(k+1,j),ie)==n2.AND.
87 . ixs(faces(k+2,j),ie)==n3)
THEN
92 ELSEIF(ixs(faces(k,j),ie)==n1.AND.ixs(faces(k+1,j),ie)==n3.AND.
93 . ixs(faces(k+2,j),ie)==n2 )
THEN
110 fcmid10(j) = ixs10(midnod(j,facet),ie10)
111 IF (fcmid10(j) /= 0) nns=nns+1
118 face(k)=ixs(faces(k,facet),elem)
125 CALL segsurf(face(1),fcmid10(1),fcmid10(3),fcmid10(3),nseg0,
126 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
128 CALL segsurf(fcmid10(1),face(2),fcmid10(2),fcmid10(2),nseg0,
129 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
131 CALL segsurf(fcmid10(1),fcmid10(2),fcmid10(3),fcmid10(3),nseg0,
132 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
134 CALL segsurf(fcmid10(2),face(3),fcmid10(3),fcmid10(3),nseg0,
135 . iseg ,igrsurf%NODES
138 CALL segsurf(face(1),fcmid10(3),fcmid10(1),fcmid10(1),nseg0,
139 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
141 CALL segsurf(fcmid10(1),fcmid10(2),face(2),face(2),nseg0,
142 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
144 CALL segsurf(fcmid10(1),fcmid10(3),fcmid10(2),fcmid10(2),nseg0,
145 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
147 CALL segsurf(fcmid10(2),fcmid10(3),face(3),face(3),nseg0,
148 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
153 IF (fcmid10(1) == 0)
THEN
155 CALL segsurf(face(1),face(2),fcmid10(2),fcmid10(2),nseg0,
156 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
158 CALL segsurf(face(1),fcmid10(2),fcmid10(3),fcmid10(3),nseg0,
159 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
161 CALL segsurf(fcmid10(3),fcmid10(2),face(3),face(3),nseg0,
162 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
163 ELSEIF (fcmid10(2) == 0)
THEN
165 CALL segsurf(face(1),fcmid10(1),fcmid10(3),fcmid10(3),nseg0,
166 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
168 CALL segsurf(fcmid10(1),face(2),fcmid10(3),fcmid10(3),nseg0,
169 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
171 CALL segsurf(face(2),face(3),fcmid10(3),fcmid10(3),nseg0,
172 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
173 ELSEIF (fcmid10(3) == 0)
THEN
175 CALL segsurf(fcmid10(1),face(2),fcmid10(2),fcmid10(2),nseg0,
176 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
178 CALL segsurf(fcmid10(1),fcmid10(2),face(1),face(1),nseg0,
179 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
181 CALL segsurf(face(1),fcmid10(2),face(3),face(3),nseg0,
182 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
185 IF (fcmid10(1) == 0)
THEN
187 CALL segsurf(face(1),fcmid10(2),face(2),face(2),nseg0,
188 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
190 CALL segsurf(face(1),fcmid10(3),fcmid10(2),fcmid10(2),nseg0,
191 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
193 CALL segsurf(fcmid10(3),face(3),fcmid10(2),fcmid10(2),nseg0
194 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
195 ELSEIF (fcmid10(2) == 0)
THEN
197 CALL segsurf(face(1),fcmid10(3),fcmid10(1),fcmid10(1),nseg0,
198 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
200 CALL segsurf(fcmid10(1),fcmid10(3),face(2),face(2),nseg0,
201 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
203 CALL segsurf(face(2),fcmid10(3),face(3),face(3),nseg0,
204 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
205 ELSEIF (fcmid10(3) == 0)
THEN
207 CALL segsurf(fcmid10(1),fcmid10(2),face(2),face(2),nseg0,
208 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
210 CALL segsurf(fcmid10(1),face(1),fcmid10(2),fcmid10(2),nseg0,
211 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
213 CALL segsurf(face(1),face(3),fcmid10(2),fcmid10(2),nseg0
214 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
220 IF (fcmid10(1) /= 0)
THEN
222 CALL segsurf(face(1),fcmid10(1),face(3),face(3),nseg0,
223 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
225 CALL segsurf(fcmid10(1),face(2),face(3),face(3),nseg0,
226 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
227 ELSEIF (fcmid10(2) /= 0)
THEN
229 CALL segsurf(face(1),face(2),fcmid10(2),fcmid10(2),nseg0,
230 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
232 CALL segsurf(face(1),fcmid10(2),face(3),face(3),nseg0,
233 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
234 ELSEIF (fcmid10(3) /= 0)
THEN
236 CALL segsurf(face(1),face(2),fcmid10(3),fcmid10(3),nseg0,
237 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
239 CALL segsurf(fcmid10(3),face(2),face(3),face(3),nseg0,
240 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
243 IF (fcmid10(1) /= 0)
THEN
245 CALL segsurf(face(1),face(3),fcmid10(1),fcmid10(1),nseg0,
246 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
248 CALL segsurf(fcmid10(1),face(3),face(2),face(2),nseg0,
249 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
250 ELSEIF (fcmid10(2) /= 0)
THEN
252 CALL segsurf(face(1),fcmid10(2),face(2),face(2),nseg0,
253 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
255 CALL segsurf(face(1),face(3),fcmid10(2),fcmid10(2),nseg0,
256 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
257 ELSEIF (fcmid10(3) /= 0)
THEN
259 CALL segsurf(face(1),fcmid10(3),face(2),face(2),nseg0,
260 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
262 CALL segsurf(fcmid10(3),face(3),face(2),face(2),nseg0,
263 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
269 CALL segsurf(n1 ,n2 ,n3 ,n3,nseg0,
270 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,elem,1)
279 CALL segsurf(n1 ,n2 ,n3 ,n3,nseg0,
280 . iseg ,igrsurf%NODES,igrsurf%ELTYP,igrsurf%ELEM,0,0)