32
33
34
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "param_c.inc"
44#include "com04_c.inc"
45
46
47
48 INTEGER IBUF(*), ELEM(3,*), IBAGHOL(NIBHOL,*),
49 . NVENT,
50 . ITAGEL(*), NN, NEL, NB_NODE
51 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
52
53
54
55 INTEGER I, II, ITABINV(NB_NODE), ITAGVENT(NN),
56 . ISU, NELSU, IEL, NG1, NG2, NG3, NG4, N1, N2, N3, N4,
57 . IVENT, NALL, NN1, NN2, IVENTYP
58
59 DO i=1,nb_node
60 itabinv(i)=0
61 ENDDO
62
63 DO i=1,nn
64 ii=ibuf(i)
65 itabinv(ii)=i
66 itagvent(i)=0
67 ENDDO
68
69 DO ivent=1,nvent
70 isu=ibaghol(2,ivent)
71 IF(isu == 0) cycle
72 iventyp=ibaghol(13,ivent)
73 IF(iventyp == 0) cycle
74 nelsu=igrsurf(isu)%NSEG
75 DO i=1,nelsu
76 ng1 = igrsurf(isu)%NODES(i,1)
77 ng2 = igrsurf(isu)%NODES(i,2)
78 ng3 = igrsurf(isu)%NODES(i,3)
79 ng4 = igrsurf(isu)%NODES(i,4)
80 n1=itabinv(ng1)
81 n2=itabinv(ng2)
82 n3=itabinv(ng3)
83 n4=itabinv(ng4)
84 itagvent(n1)=ivent
85 itagvent(n2)=ivent
86 itagvent(n3)=ivent
87 itagvent(n4)=ivent
88 ENDDO
89 ENDDO
90
91 DO iel=1,nel
92 IF(itagel(iel) > 0) cycle
93 n1=elem(1,iel)
94 n2=elem(2,iel)
95 n3=elem(3,iel)
96 nall=itagvent(n1)*itagvent(n2)*itagvent(n3)
97 IF(nall/=0) THEN
98 nn1=itagvent(n2)-itagvent(n1)
99 nn2=itagvent(n3)-itagvent(n1)
100 IF (nn1 == 0 .AND. nn2 == 0) itagel(iel)=-itagvent(n1)
101 ENDIF
102 ENDDO
103
104 RETURN