35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "mvsiz_p.inc"
43
44
45
46
47
48
49 INTEGER, INTENT(IN) :: NEL
50 INTEGER NPE
51 INTEGER IXS(NIXS,*)
52
54 . x(3,*),rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),
55 . tx(*), ty(*), tz(*)
56
57
58
59 INTEGER I,NPE1,N
60 INTEGER NC(MVSIZ,NPE)
61
63 . x0(mvsiz,npe), y0(mvsiz,npe), z0(mvsiz,npe)
64
65
66 npe1=npe-1
67 IF (npe==4.OR.npe==10) THEN
68 DO i=1,nel
69 nc(i,1)=ixs(2,i)
70 nc(i,2)=ixs(4,i)
71 nc(i,3)=ixs(7,i)
72 nc(i,4)=ixs(6,i)
73 ENDDO
74 ELSEIF (npe==6) THEN
75 DO i=1,nel
76 nc(i,1)=ixs(2,i)
77 nc(i,2)=ixs(3,i)
78 nc(i,3)=ixs(4,i)
79 nc(i,4)=ixs(6,i)
80 nc(i,5)=ixs(7,i)
81 nc(i,6)=ixs(8,i)
82 ENDDO
83 ELSE
84 DO n=1,npe
85 DO i=1,nel
86 nc(i,n)=ixs(n+1,i)
87 ENDDO
88 ENDDO
89 ENDIF
90
91
92
93 DO n=1,npe
94 DO i=1,nel
95 x0(i,n)=x(1,nc(i,n))
96 y0(i,n)=x(2,nc(i,n))
97 z0(i,n)=x(3,nc(i,n))
98 ENDDO
99 ENDDO
100
101
102
103 SELECT CASE (npe)
104 CASE(4,10)
105 DO i=1,nel
106 rx(i) = x0(i,1) - x0(i,4)
107 ry(i) = y0(i,1) - y0(i,4)
108 rz(i) = z0(i,1) - z0(i,4)
109
110 sx(i) = x0(i,2) - x0(i,4)
111 sy(i) = y0(i,2) - y0(i,4)
112 sz(i) = z0(i,2) - z0(i,4)
113
114 tx(i) = x0(i,3) - x0(i,4)
115 ty(i) = y0(i,3) - y0(i,4)
116 tz(i) = z0(i,3) - z0(i,4)
117 ENDDO
118 CASE(6)
119 DO i=1,nel
120 rx(i) = x0(i,3) + x0(i,6) - x0(i,1)- x0(i,4)
121 ry(i) = y0(i,3) + y0(i,6) - y0(i,1)- y0(i,4)
122 rz(i) = z0(i,3) + z0(i,6) - z0(i,1) - z0(i,4)
123
124 sx(i) = (x0(i,4)+x0(i,5)+x0(i,6)-x0(i,1)+x0(i,2)+x0(i,3))*third
125 sy(i) = (y0(i,4)+y0(i,5)+y0(i,6)-y0(i,1)+y0(i,2)+y0(i,3))*third
126 sz(i) = (z0(i,4)+z0(i,5)+z0(i,6)-z0(i,1)+z0(i,2)+z0(i,3))*third
127
128 tx(i) = x0(i,2) + x0(i,5)- x0(i,1) - x0(i,4)
129 ty(i) = y0(i,2) + y0(i,5)- y0(i,1) - y0(i,4)
130 tz(i) = z0(i,2) + z0(i,5)- z0(i,1) - z0(i,4)
131 ENDDO
132 CASE(8)
133 DO i=1,nel
134 rx(i) = x0(i,3)+x0(i,4)+x0(i,7)+x0(i,8)-
135 . (x0(i,1)+x0(i,2)+x0(i,5)+x0(i,6))
136 ry(i) = y0(i,3)+y0(i,4)+y0(i,7)+y0(i,8)-
137 . (y0(i,1)+y0(i,2)+y0(i,5)+y0(i,6))
138 rz(i) = z0(i,3)+z0(i,4)+z0(i,7)+z0(i,8)-
139 . (z0(i,1)+z0(i,2)+z0(i,5)+z0(i,6))
140
141 sx(i) = x0(i,5)+x0(i,6)+x0(i,7)+x0(i,8)-
142 . (x0(i,1)+x0(i,2)+x0(i,3)+x0(i,4))
143 sy(i) = y0(i,5)+y0(i,6)+y0(i,7)+y0(i,8)-
144 . (y0(i,1)+y0(i,2)+y0(i,3)+y0(i,4))
145 sz(i) = z0(i,5)+z0(i,6)+z0(i,7)+z0(i,8)-
146 . (z0(i,1)+z0(i,2)+z0(i,3)+z0(i,4))
147
148 tx(i) = x0(i,3)+x0(i,2)+x0(i,7)+x0(i,6)-
149 . (x0(i,1)+x0(i,4)+x0(i,5)+x0(i,8))
150 ty(i) = y0(i,3)+y0(i,2)+y0(i,7)+y0(i,6)-
151 . (y0(i,1)+y0(i,4)+y0(i,5)+y0(i,8))
152 tz(i) = z0(i,3)+z0(i,2)+z0(i,7)+z0(i,6)-
153 . (z0(i,1)+z0(i,4)+z0(i,5)+z0(i,8))
154
155 ENDDO
156 END SELECT
157
158 RETURN