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,*), IBAGJET(NIBJET,*),
49 . NJET,
50 . ITAGEL(*), NN, NEL, NB_NODE, MINUS_SIGN_REVERSE(NEL)
51 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
52
53
54
55 INTEGER I, II, ITABINV(NB_NODE), ITAGINJ(NN), IREVERSED(NN), IINJ,
56 . ISU, NELSU, IEL, NG1, NG2, NG3, NG4, N1, N2, N3, N4,
57 . NALL, NN1, NN2, REV
58
59 INTEGER :: INV3(3)
61
62 DO i=1,nb_node
63 itabinv(i)=0
64 ENDDO
65
66 DO i=1,nn
67 ii=ibuf(i)
68 itabinv(ii)=i
69 itaginj(i)=0
70 ENDDO
71
72 DO iinj=1,njet
73 isu=ibagjet(14,iinj)
74 IF(isu==0) cycle
75 nelsu=igrsurf(isu)%NSEG
76 DO iel=1,nelsu
77 ng1 = igrsurf(isu)%NODES(iel,1)
78 ng2 = igrsurf(isu)%NODES(iel,2)
79 ng3 = igrsurf(isu)%NODES(iel,3)
80 ng4 = igrsurf(isu)%NODES(iel,4)
81 n1=itabinv(ng1)
82 n2=itabinv(ng2)
83 n3=itabinv(ng3)
84 n4=itabinv(ng4)
85 itaginj(n1)=iinj
86 itaginj(n2)=iinj
87 itaginj(n3)=iinj
88 itaginj(n4)=iinj
89 rev = igrsurf(isu)%REVERSED(iel)
90 ireversed(n1) = rev
91 ireversed(n2) = rev
92 ireversed(n3) = rev
93 ireversed(n4) = rev
94 ENDDO
95 ENDDO
96
97 DO iel=1,nel
98 n1=elem(1,iel)
99 n2=elem(2,iel)
100 n3=elem(3,iel)
101 itagel(iel)=0
102 nall=itaginj(n1)*itaginj(n2)*itaginj(n3)
103 IF (nall/=0) THEN
104 nn1=itaginj(n2)-itaginj(n1)
105 nn2=itaginj(n3)-itaginj(n1)
106 IF (nn1==0.AND.nn2==0) THEN
107 itagel(iel)=itaginj(n1)
108 IF(ireversed(n1) + ireversed(n2) + ireversed(n3) == 3) THEN
109 elem(1,iel) = n3
110 elem(3,iel) = n1
111 minus_sign_reverse(iel) = 1
112 ENDIF
113 ENDIF
114 ENDIF
115 ENDDO
116
117 RETURN