35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "mvsiz_p.inc"
43
44
45
46 INTEGER L_PIJ,NEL,INDEX(*),NB
48 . ksi,eta,zeta,wi,
49 . hx(4,*), hy(4,*), hz(4,*),
50 . cj1(*),cj2(*),cj3(*),
51 . cj4(*),cj5(*),cj6(*),
52 . cj7(*),cj8(*),cj9(*),
53 . jac_i(10,*),pij(nel,24),sig(nel,6),sigl(nel,6)
54
55
56
57 INTEGER I, J
59 . det(mvsiz) , dett(mvsiz) ,
60 . aj1(mvsiz),aj2(mvsiz),aj3(mvsiz),
61 . aj4(mvsiz),aj5(mvsiz),aj6(mvsiz),
62 . aj7(mvsiz),aj8(mvsiz),aj9(mvsiz),
63 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz),
64 . jac_38_29(mvsiz), jac_19_37(mvsiz), jac_27_18(mvsiz),
65 . jac_26_35(mvsiz), jac_34_16(mvsiz), jac_15_24(mvsiz)
67 . aji1(mvsiz), aji2(mvsiz), aji3(mvsiz),
68 . aji4(mvsiz), aji5(mvsiz), aji6(mvsiz),
69 . aji7(mvsiz), aji8(mvsiz), aji9(mvsiz),
70 . a1pr1(mvsiz),a1pr3(mvsiz),a1pr5(mvsiz),a1pr7(mvsiz),
71 . a4pr1(mvsiz),a4pr3(mvsiz),a4pr5(mvsiz),a4pr7(mvsiz),
72 . a7pr1(mvsiz),a7pr3(mvsiz),a7pr5(mvsiz),a7pr7(mvsiz),
73 . a2ps1(mvsiz),a2ps2(mvsiz),a2ps5(mvsiz),a2ps6(mvsiz),
74 . a5ps1(mvsiz),a5ps2(mvsiz),a5ps5(mvsiz),a5ps6(mvsiz),
75 . a8ps1(mvsiz),a8ps2(mvsiz),a8ps5(mvsiz),a8ps6(mvsiz),
76 . a3pt1(mvsiz),a3pt2(mvsiz),a3pt3(mvsiz),a3pt4(mvsiz),
77 . a6pt1(mvsiz),a6pt2(mvsiz),a6pt3(mvsiz),a6pt4(mvsiz),
78 . a9pt1(mvsiz),a9pt2(mvsiz),a9pt3(mvsiz),a9pt4(mvsiz),
79 . pr(8),ps(8),pt(8),rp, sp, tp, rm, sm, tm,
80 . px1, px2, px3, px4,px5, px6, px7, px8,
81 . py1, py2, py3, py4,py5, py6, py7, py8,
82 . pz1, pz2, pz3, pz4,pz5, pz6, pz7, pz8,
83 . jac_1(10,mvsiz),pij12(24,nel)
84
85 DO i=1,nb
86 aj1(i)=cj1(i)+hx(3,i)*eta+(hx(2,i)+hx(4,i)*eta)*zeta
87 aj2(i)=cj2(i)+hy(3,i)*eta+(hy(2,i)+hy(4,i)*eta)*zeta
88 aj3(i)=cj3(i)+hz(3,i)*eta+(hz(2,i)+hz(4,i)*eta)*zeta
89
90 aj4(i)=cj4(i)+hx(1,i)*zeta+(hx(3,i)+hx(4,i)*zeta)*ksi
91 aj5(i)=cj5(i)+hy(1,i)*zeta+(hy(3,i)+hy(4,i)*zeta)*ksi
92 aj6(i)=cj6(i)+hz(1,i)*zeta+(hz(3,i)+hz(4,i)*zeta)*ksi
93
94 aj7(i)=cj7(i)+hx(2,i)*ksi+(hx(1,i)+hx(4,i)*ksi)*eta
95 aj8(i)=cj8(i)+hy(2,i)*ksi+(hy(1,i)+hy(4,i)*ksi)*eta
96 aj9(i)=cj9(i)+hz(2,i)*ksi+(hz(1,i)+hz(4,i)*ksi)*eta
97 ENDDO
98
99
100
101 DO i=1,nb
102 jac_59_68(i)=aj5(i)*aj9(i)-aj6(i)*aj8(i)
103 jac_67_49(i)=aj6(i)*aj7(i)-aj4(i)*aj9(i)
104 jac_38_29(i)=(-aj2(i)*aj9(i)+aj3(i)*aj8(i))
105 jac_19_37(i)=( aj1(i)*aj9(i)-aj3(i)*aj7(i))
106 jac_27_18(i)=(-aj1(i)*aj8(i)+aj2(i)*aj7(i))
107 jac_26_35(i)=( aj2(i)*aj6(i)-aj3(i)*aj5(i))
108 jac_34_16(i)=(-aj1(i)*aj6(i)+aj3(i)*aj4(i))
109 jac_15_24(i)=( aj1(i)*aj5(i)-aj2(i)*aj4(i))
110 jac_48_57(i)=aj4(i)*aj8(i)-aj5(i)*aj7(i)
111 ENDDO
112
113 DO i=1,nb
114 det(i)=one_over_512*(aj1(i)*jac_59_68(i)+aj2(i)*jac_67_49(i)+aj3(i)*jac_48_57(i
115 dett(i)=one_over_512/det(i)
116 ENDDO
117
118 IF (l_pij ==0) THEN
119 DO i=1,nb
120 jac_1(1,i)=dett(i)*jac_59_68(i)
121 jac_1(4,i)=dett(i)*jac_67_49(i)
122 jac_1(7,i)=dett(i)*jac_48_57(i)
123 jac_1(2,i)=dett(i)*jac_38_29(i)
124 jac_1(5,i)=dett(i)*jac_19_37(i)
125 jac_1(8,i)=dett(i)*jac_27_18(i)
126 jac_1(3,i)=dett(i)*jac_26_35(i)
127 jac_1(6,i)=dett(i)*jac_34_16(i)
128 jac_1(9,i)=dett(i)*jac_15_24(i)
129 jac_1(10,i)=det(i)
130 ENDDO
131#include "vectorize.inc"
132 DO j=1,nb
133 i = index(j)
134 jac_i(1:10,i) = jac_1(1:10,j)
135 ENDDO
136 ELSE
137
138 DO i=1,nb
139 aji1(i)=dett(i)*jac_59_68(i)
140 aji4(i)=dett(i)*jac_67_49(i)
141 aji7(i)=dett(i)*jac_48_57(i)
142 aji2(i)=dett(i)*jac_38_29(i)
143 aji5(i)=dett(i)*jac_19_37(i)
144 aji8(i)=dett(i)*jac_27_18(i)
145 aji3(i)=dett(i)*jac_26_35(i)
146 aji6(i)=dett(i)*jac_34_16(i)
147 aji9(i)=dett(i)*jac_15_24(i)
148 ENDDO
149
150 rp = one + ksi
151 sp = one + eta
152 tp = one + zeta
153 rm = one - ksi
154 sm = one - eta
155 tm = one - zeta
156 pr(1)=-sm*tm
157 pr(2)=-pr(1)
158 pr(3)= sp*tm
159 pr(4)=-pr(3)
160 pr(5)=-sm*tp
161 pr(6)=-pr(5)
162 pr(7)= sp*tp
163 pr(8)=-pr(7)
164 ps(1)=-rm*tm
165 ps(2)=-rp*tm
166 ps(3)=-ps(2)
167 ps(4)=-ps(1)
168 ps(5)=-rm*tp
169 ps(6)=-rp*tp
170 ps(7)=-ps(6)
171 ps(8)=-ps(5)
172 pt(1)=-rm*sm
173 pt(2)=-rp*sm
174 pt(3)=-rp*sp
175 pt(4)=-rm*sp
176 pt(5)=-pt(1)
177 pt(6)=-pt(2)
178 pt(7)=-pt(3)
179 pt(8)=-pt(4)
180
181 DO i=1,nb
182 a1pr1(i)=aji1(i)*pr(1)
183 a1pr3(i)=aji1(i)*pr(3)
184 a1pr5(i)=aji1(i)*pr(5)
185 a1pr7(i)=aji1(i)*pr(7)
186 a4pr1(i)=aji4(i)*pr(1)
187 a4pr3(i)=aji4(i)*pr(3)
188 a4pr5(i)=aji4(i)*pr(5)
189 a4pr7(i)=aji4(i)*pr(7)
190 a7pr1(i)=aji7(i)*pr(1)
191 a7pr3(i)=aji7(i)*pr(3)
192 a7pr5(i)=aji7(i)*pr(5)
193 a7pr7(i)=aji7(i)*pr(7)
194 ENDDO
195 DO i=1,nb
196 a2ps1(i)=aji2(i)*ps(1)
197 a2ps2(i)=aji2(i)*ps(2)
198 a2ps5(i)=aji2(i)*ps(5)
199 a2ps6(i)=aji2(i)*ps(6)
200 a5ps1(i)=aji5(i)*ps(1)
201 a5ps2(i)=aji5(i)*ps(2)
202 a5ps5(i)=aji5(i)*ps(5)
203 a5ps6(i)=aji5(i)*ps(6)
204 a8ps1(i)=aji8(i)*ps(1)
205 a8ps2(i)=aji8(i)*ps(2)
206 a8ps5(i)=aji8(i)*ps(5)
207 a8ps6(i)=aji8(i)*ps(6)
208 ENDDO
209
210 DO i=1,nb
211 a3pt1(i)=aji3(i)*pt(1)
212 a3pt2(i)=aji3(i)*pt(2)
213 a3pt3(i)=aji3(i)*pt(3)
214 a3pt4(i)=aji3(i)*pt(4)
215 a6pt1(i)=aji6(i)*pt(1)
216 a6pt2(i)=aji6(i)*pt(2)
217 a6pt3(i)=aji6(i)*pt(3)
218 a6pt4(i)=aji6(i)*pt(4)
219 a9pt1(i)=aji9(i)*pt(1)
220 a9pt2(i)=aji9(i)*pt(2)
221 a9pt3(i)=aji9(i)*pt(3)
222 a9pt4(i)=aji9(i)*pt(4)
223 ENDDO
224
225 DO i=1,nb
226 px1= a1pr1(i)+a2ps1(i)+a3pt1(i)
227 px2=-a1pr1(i)+a2ps2(i)+a3pt2(i)
228 px3= a1pr3(i)-a2ps2(i)+a3pt3(i)
229 px4=-a1pr3(i)-a2ps1(i)+a3pt4(i)
230 px5= a1pr5(i)+a2ps5(i)-a3pt1(i)
231 px6=-a1pr5(i)+a2ps6(i)-a3pt2(i)
232 px7= a1pr7(i)-a2ps6(i)-a3pt3(i)
233 px8=-a1pr7(i)-a2ps5(i)-a3pt4(i)
234
235 py1= a4pr1(i)+a5ps1(i)+a6pt1(i)
236 py2=-a4pr1(i)+a5ps2(i)+a6pt2(i)
237 py3= a4pr3(i)-a5ps2(i)+a6pt3(i)
238 py4=-a4pr3(i)-a5ps1(i)+a6pt4(i)
239 py5= a4pr5(i)+a5ps5(i)-a6pt1(i)
240 py6=-a4pr5(i)+a5ps6(i)-a6pt2(i)
241 py7= a4pr7(i)-a5ps6(i)-a6pt3(i)
242 py8=-a4pr7(i)-a5ps5(i)-a6pt4(i)
243
244 pz1= a7pr1(i)+a8ps1(i)+a9pt1(i)
245 pz2=-a7pr1(i)+a8ps2(i)+a9pt2(i)
246 pz3= a7pr3(i)-a8ps2(i)+a9pt3(i)
247 pz4=-a7pr3(i)-a8ps1(i)+a9pt4(i)
248 pz5= a7pr5(i)+a8ps5(i)-a9pt1(i)
249 pz6=-a7pr5(i)+a8ps6(i)-a9pt2(i)
250 pz7= a7pr7(i)-a8ps6(i)-a9pt3(i)
251 pz8=-a7pr7(i)-a8ps5
252
253 pij12(1,i) = px1
254 pij12(2,i) = py1
255 pij12(3,i) = pz1
256 pij12(4,i) = px2
257 pij12(5,i) = py2
258 pij12(6,i) = pz2
259 pij12(7,i) = px3
260 pij12(8,i) = py3
261 pij12(9,i) = pz3
262 pij12(10,i) = px4
263 pij12(11,i) = py4
264 pij12(12,i) = pz4
265 pij12(13,i) = px5
266 pij12(14,i) = py5
267 pij12(15,i) = pz5
268 pij12(16,i) = px6
269 pij12(17,i) = py6
270 pij12(18,i) = pz6
271 pij12(19,i) = px7
272 pij12(20,i) = py7
273 pij12(21,i) = pz7
274 pij12(22,i) = px8
275 pij12(23,i) = py8
276 pij12(24,i) = pz8
277 ENDDO
278#include "vectorize.inc"
279 DO j=1,nb
280 i = index(j)
281 pij(i,1:24) = pij12(1:24,j)
282 ENDDO
283 END IF
284#include "vectorize.inc"
285 DO j=1,nb
286 i = index(j)
287 sigl(i,1:6) = sig(i,1:6)
288 ENDDO
289
290 RETURN