8 & xmul,su,sv,u,v,xel,yel,surfac,ikle,nelem,nelmax)
75 INTEGER,
INTENT(IN) :: NELEM,NELMAX
76 INTEGER,
INTENT(IN) :: IKLE(nelmax,*)
77 DOUBLE PRECISION,
INTENT(INOUT) :: A11(*),A12(*),A13(*)
78 DOUBLE PRECISION,
INTENT(INOUT) :: A22(*),A23(*)
79 DOUBLE PRECISION,
INTENT(INOUT) :: A33(*)
80 DOUBLE PRECISION,
INTENT(IN) :: XMUL,U(*),V(*)
81 TYPE(bief_obj) ,
INTENT(IN) :: SU,SV
82 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
83 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
89 INTEGER IELMU,IELMV,IELEM
91 DOUBLE PRECISION SUR48,X2,X3,Y2,Y3,U1,U2,U3,U4,U5,U6
92 DOUBLE PRECISION V1,V2,V3,V4,V5,V6,AUX
93 DOUBLE PRECISION AUX1,AUX2,AUX3
94 DOUBLE PRECISION SUR144,SUR720,U123,V123,ANS1,ANS2,ANS3
109 IF(ielmu.EQ.11.AND.ielmv.EQ.11)
THEN 120 u1 = u(ikle(ielem,1))
121 u2 = u(ikle(ielem,2))
122 u3 = u(ikle(ielem,3))
124 v1 = v(ikle(ielem,1))
125 v2 = v(ikle(ielem,2))
126 v3 = v(ikle(ielem,3))
131 aux = sur48 / surfac(ielem)
133 aux1 = u1*u123+u2**2+u2*u3+u3**2
134 aux2 = u1*(v123+v1)+u2*(v123+v2)+u3*(v123+v3)
135 aux3 = v1*v123+v2**2+v2*v3+v3**2
137 a12(ielem) = ( 2*y3*(y2-y3) *aux1
138 & +(x3*(y3-y2)+(x3-x2)*y3)*aux2
139 & +2*x3*(x2-x3) *aux3 ) * aux
141 a13(ielem) = ( 2*y2*(y3-y2) *aux1
142 & +(2*x2*y2-x2*y3-x3*y2) *aux2
143 & +2*x2*(x3-x2) *aux3 ) * aux
145 a23(ielem) = ( -2*y2*y3 *aux1
146 & +(x2*y3+x3*y2) *aux2
147 & -2*x2*x3 *aux3 ) * aux
153 a11(ielem) = - a12(ielem) - a13(ielem)
154 a22(ielem) = - a23(ielem) - a12(ielem)
155 a33(ielem) = - a13(ielem) - a23(ielem)
162 ELSEIF(ielmu.EQ.12.AND.ielmv.EQ.12)
THEN 173 u1 = u(ikle(ielem,1))
174 u2 = u(ikle(ielem,2))
175 u3 = u(ikle(ielem,3))
176 u4 = u(ikle(ielem,4))
178 v1 = v(ikle(ielem,1))
179 v2 = v(ikle(ielem,2))
180 v3 = v(ikle(ielem,3))
181 v4 = v(ikle(ielem,4))
183 aux = sur144 / surfac(ielem)
185 a12(ielem) = (x2*((2*((v4+v2)*v3+v3**2+v4**2+v4*v2+v2**2)*
186 & x3-(2*u3+u4+u2)*v3*y3-(u3+2*u4+u2)*v4*y3-(u3+u4+2*u2)*
187 & v2*y3)+(2*((v4+v1)*v3+v3**2+v4**2+v4*v1+v1**2)*x3-(2*u3
188 & +u4+u1)*v3*y3-(u3+2*u4+u1)*v4*y3-(u3+u4+2*u1)*v1*y3)+(
189 & 2*((v2+v1)*v4+v4**2+v2**2+v2*v1+v1**2)*x3-(2*u4+u2+u1)*
190 & v4*y3-(u4+2*u2+u1)*v2*y3-(u4+u2+2*u1)*v1*y3))-(2*x3**2
191 & )*(((v4+v2)*v3+v3**2+v4**2+v4*v2+v2**2)+((v4+v1)*v3+v3**2
192 & +v4**2+v4*v1+v1**2)+((v2+v1)*v4+v4**2+v2**2+v2*v1+v1**2))
193 & +x3*(2*y3-y2)*(((2*u3+u4+u2)*v3+(u3+2*u4+u2)*v4+(u3+u4
194 & +2*u2)*v2)+((2*u3+u4+u1)*v3+(u3+2*u4+u1)*v4+(u3+u4+2*
195 & u1)*v1)+((2*u4+u2+u1)*v4+(u4+2*u2+u1)*v2+(u4+u2+2*u1)*
196 & v1))+2*y3*(y3-y2)*(-(u4+u2)*u3-(u4+u1)*u3-(u2+u1)*u4-2*
197 & u3**2-3*u4**2-u4*u2-u4*u1-2*u2**2-u2*u1-2*u1**2))*aux
199 a13(ielem) = (-(2*x2**2)*(((v4+v2)*v3+v3**2+v4**2+v4*v2+v2
200 & **2)+((v4+v1)*v3+v3**2+v4**2+v4*v1+v1**2)+((v2+v1)*v4+v4
201 & **2+v2**2+v2*v1+v1**2))+x2*((2*((v4+v2)*v3+v3**2+v4**2+
202 & v4*v2+v2**2)*x3-(2*u3+u4+u2)*(y3-2*y2)*v3-(u3+2*u4+u2)
203 & *(y3-2*y2)*v4-(u3+u4+2*u2)*(y3-2*y2)*v2)+(2*((v4+v1)*
204 & v3+v3**2+v4**2+v4*v1+v1**2)*x3-(2*u3+u4+u1)*(y3-2*y2)*
205 & v3-(u3+2*u4+u1)*(y3-2*y2)*v4-(u3+u4+2*u1)*(y3-2*y2)*
206 & v1)+(2*((v2+v1)*v4+v4**2+v2**2+v2*v1+v1**2)*x3-(2*u4+u2
207 & +u1)*(y3-2*y2)*v4-(u4+2*u2+u1)*(y3-2*y2)*v2-(u4+u2+2*
208 & u1)*(y3-2*y2)*v1))-(x3*y2)*(((2*u3+u4+u2)*v3+(u3+2*u4+
209 & u2)*v4+(u3+u4+2*u2)*v2)+((2*u3+u4+u1)*v3+(u3+2*u4+u1)*
210 & v4+(u3+u4+2*u1)*v1)+((2*u4+u2+u1)*v4+(u4+2*u2+u1)*v2+(
211 & u4+u2+2*u1)*v1))+2*y2*(y3-y2)*((u4+u2)*u3+(u4+u1)*u3+(
212 & u2+u1)*u4+2*u3**2+3*u4**2+u4*u2+u4*u1+2*u2**2+u2*u1+2
215 a23(ielem) = (2*x2*x3*(-2*v3**2-2*v3*v4-v3*v2-v3*v1-3*v4
216 & **2-2*v4*v2-2*v4*v1-2*v2**2-v2*v1-2*v1**2)+x2*y3*(4*
217 & v3*u3+2*v3*u4+v3*u2+v3*u1+2*v4*u3+6*v4*u4+2*v4*u2+2*
218 & v4*u1+v2*u3+2*v2*u4+4*v2*u2+v2*u1+v1*u3+2*v1*u4+v1*u2+
219 & 4*v1*u1)+x3*y2*(4*v3*u3+2*v3*u4+v3*u2+v3*u1+2*v4*u3+6
220 & *v4*u4+2*v4*u2+2*v4*u1+v2*u3+2*v2*u4+4*v2*u2+v2*u1+v1
221 & *u3+2*v1*u4+v1*u2+4*v1*u1)+2*y2*y3*(-2*u3**2-2*u3*u4
222 & -u3*u2-u3*u1-3*u4**2-2*u4*u2-2*u4*u1-2*u2**2-u2*u1-2
229 a11(ielem) = - a12(ielem) - a13(ielem)
230 a22(ielem) = - a23(ielem) - a12(ielem)
231 a33(ielem) = - a13(ielem) - a23(ielem)
239 ELSEIF(ielmu.EQ.13.AND.ielmv.EQ.13)
THEN 250 u1 = u(ikle(ielem,1))
251 u2 = u(ikle(ielem,2))
252 u3 = u(ikle(ielem,3))
253 u4 = u(ikle(ielem,4))
254 u5 = u(ikle(ielem,5))
255 u6 = u(ikle(ielem,6))
257 v1 = v(ikle(ielem,1))
258 v2 = v(ikle(ielem,2))
259 v3 = v(ikle(ielem,3))
260 v4 = v(ikle(ielem,4))
261 v5 = v(ikle(ielem,5))
262 v6 = v(ikle(ielem,6))
264 aux = sur720 / surfac(ielem)
266 ans1 = 3.d0*u2**2*y2**2-4.d0*u4*y3**2*u3+v2*x2*u3*y2-
267 & 4.d0*v1*x3**2*v5+u2*y3*v3*x3-u2*y3**2*u3-4.d0*v4*x3**2*v3-
268 & v2*x2**2*v3-4.d0*v2*x2**2*v6-v2*x2**2*v1-v2*x3**2*v1-
269 & 4.d0*u4*y2**2*u3-v1*x2**2*v3-6.d0*u3**2*y3*y2-
270 & 32.d0*u5**2*y2*y3+16.d0*u4*y3**2*u6+16.d0*v6*x3**2*v5+
271 & 16.d0*u6*y3**2*u5+16.d0*v6**2*x3**2+16.d0*u4*y2**2*u5-
272 & 4.d0*u1*y3**2*u5-32.d0*u6**2*y2*y3+3.d0*v1**2*x3**2+
273 & 16.d0*v4*x2**2*v5-4.d0*v1*x2**2*v5+16.d0*v5**2*x3**2-
274 & 6.d0*u1**2*y3*y2-u1*y3**2*u3-32.d0*v6**2*x3*x2-
275 & 32.d0*u4**2*y2*y3+16.d0*u4*y2**2*u6+16.d0*v4**2*x2**2-
276 & 4.d0*u2*y3**2*u6+16.d0*u5**2*y3**2+3.d0*v2**2*x3**2-
277 & 6.d0*v1**2*x2*x3+3.d0*u3**2*y3**2+8.d0*u2*y2*u6*y3+
278 & 2.d0*v2*x2*v3*x3+2.d0*u2*y2*u3*y3-u2*y2*v1*x3-
279 & 6.d0*v3**2*x2*x3+16.d0*v4*x3**2*v6-4.d0*u2*y2*v6*x3+
280 & 3.d0*v3**2*x3**2+16.d0*u4**2*y3**2-6.d0*u2**2*y2*y3-
281 & 6.d0*v2**2*x2*x3+16.d0*v4*x2**2*v6-4.d0*v4*x2**2*v3+
282 & 6.d0*u2*y2*v2*x3+6.d0*v2*x2*u2*y3+32.d0*u5*y2*v5*x3+
283 & 8.d0*u4*y3*u3*y2-6.d0*u1*y3*v1*x3+4.d0*v4*x3*u3*y3-
284 & 16.d0*v4*x3*u6*y3+u1*y3*v3*x3-16.d0*u4*y3*v5*x3
285 ans2 = -32.d0*v4*x3*u4*y3-16.d0*v4*x3*u5*y3-6.d0*v3*x3*u3*y3-
286 & 32.d0*u5*y3*v5*x3+4.d0*u4*y3*v3*x3-16.d0*u4*y3*v6*x3-
287 & 16.d0*u6*y3*v5*x3+4.d0*u1*y3*v5*x3+4.d0*v1*x3*u5*y3-
288 & 32.d0*v6*x3*u6*y3-16.d0*v6*x3*u5*y3+v1*x3*u3*y3+
289 & 4.d0*v2*x3*u6*y3+4.d0*u2*y3*v6*x3+u2*y3*v1*x3+v2*x3*u1*y3+
290 & v2*x3*u3*y3+3.d0*u1**2*y3**2+3.d0*u3**2*y2**2+
291 & 3.d0*v3**2*x2**2-6.d0*u2*y3*v2*x3-4.d0*u4*y3*v3*x2-
292 & 32.d0*u4*y3*u6*y2+32.d0*v6*x3*u6*y2-32.d0*v5**2*x2*x3+
293 & 3.d0*u2**2*y3**2+16.d0*v4**2*x3**2+16.d0*u6*y3*v5*x2+
294 & 8.d0*u1*y3*u5*y2-4.d0*u1*y3*v5*x2-32.d0*u6*y2*u5*y3-
295 & 4.d0*u1*y2*v5*x3+16.d0*u6*y2*v5*x3-4.d0*v1*x3*u5*y2+
296 & 32.d0*v6*x2*u6*y3+16.d0*v6*x2*u5*y3-32.d0*v6*x3*v5*x2-
297 & 4.d0*v1*x2*u5*y3+8.d0*v1*x2*v5*x3+16.d0*v6*x3*u5*y2-
298 & v1*x3*u3*y2+6.d0*u1*y2*v1*x3-v2*x3*u1*y2-u1*y2*v3*x3-
299 & 4.d0*v2*x3*u6*y2-u2*y3*v1*x2-4.d0*u2*y3*v6*x2-v2*x3*u3*y2-
300 & 4.d0*u4*y2*v3*x3+16.d0*u4*y2*v6*x3-u2*y3*v3*x2-
301 & v1*x2*u3*y3+8.d0*v2*x2*v6*x3+16.d0*u6**2*y3**2-
302 & v2*x2*u3*y3-u2*y2*v3*x3+2.d0*u2*y2*u1*y3-v2*x2*u1*y3+
303 & 2.d0*v2*x2*v1*x3-4.d0*v2*x2*u6*y3-32.d0*v4*x2*v5*x3
304 ans3 = 16.d0*v4*x2*u5*y3+32.d0*v4*x2*u4*y3+2.d0*u1*y3*u3*y2-
305 & u1*y3*v3*x2+16.d0*u4*y3*v6*x2+16.d0*v4*x2*u6*y3+
306 & 16.d0*v4*x3*u6*y2+8.d0*v4*x2*v3*x3-32.d0*v4*x2*v6*x3-
307 & 4.d0*v4*x2*u3*y3+2.d0*v1*x2*v3*x3-4.d0*v4*x3*u3*y2+
308 & 6.d0*u1*y3*v1*x2+6.d0*v3*x2*u3*y3+16.d0*u4*y3*v5*x2+
309 & 16.d0*v4*x3*u5*y2+16.d0*u6*y2**2*u5-32.d0*u4*y2*u5*y3+
310 & 32.d0*u4*y2*v4*x3+16.d0*u4*y2*v5*x3+16.d0*u4*y3**2*u5-
311 & 6.d0*u2*y2*v2*x2+u2*y2*v1*x2+4.d0*u2*y2*v6*x2+
312 & 6.d0*v3*x3*u3*y2+32.d0*u5*y3*v5*x2-v1*x3**2*v3
313 & -32.d0*u5*y2*v5*x2+16.d0*v6*x2**2*v5-u1*y2**2*u3-
314 & u2*y2**2*u1-4.d0*u1*y2**2*u5+3.d0*v2**2*x2**2-
315 & v2*x3**2*v3+16.d0*u6**2*y2**2+4.d0*u1*y2*v5*x2-
316 & 16.d0*u6*y2*v5*x2-4.d0*u2*y2**2*u6+3.d0*v1**2*x2**2+
317 & 16.d0*v6**2*x2**2-32.d0*v4**2*x2*x3+16.d0*v4*x3**2*v5+
318 & v1*x2*u3*y2-6.d0*v1*x2*u1*y2+4.d0*v4*x2*u3*y2-
319 & 16.d0*v4*x2*u6*y2+u2*y2*v3*x2+4.d0*v2*x2*u6*y2+
320 & v2*x2*u1*y2-16.d0*v4*x2*u5*y2+3.d0*u1**2*y2**2+
321 & u1*y2*v3*x2+4.d0*u4*y2*v3*x2-16.d0*u4*y2*v6*x2-
322 & 32.d0*v6*x2*u6*y2-16.d0*v6*x2*u5*y2+4.d0*v1*x2*u5*y2
323 a11(ielem) = (16.d0*u4**2*y2**2-u2*y3**2*u1-4*v2*x3**2*v6-
324 & u2*y2**2*u3+16.d0*v5**2*x2**2-32.d0*u4*y2*v4*x2-
325 & 6.d0*v3*x2*u3*y2-16.d0*u4*y2*v5*x2+
326 & 16.d0*u5**2*y2**2 + ans1 + ans2 + ans3)*2.d0*aux
328 a22(ielem) = (-4.d0*u4*y3**2*u3-4.d0*v1*x3**2*v5+u2*y3*v3*x3-
329 & u2*y3**2*u3-4.d0*v4*x3**2*v3-v2*x3**2*v1+
330 & 16.d0*u4*y3**2*u6+16.d0*v6*x3**2*v5+16.d0*u6*y3**2*u5+
331 & 16.d0*v6**2*x3**2-4.d0*u1*y3**2*u5+3*v1**2*x3**2+
332 & 16.d0*v5**2*x3**2-u1*y3**2*u3-4.d0*u2*y3**2*u6+
333 & 16.d0*u5**2*y3**2+3.d0*v2**2*x3**2+3.d0*u3**2*y3**2+
334 & 16.d0*v4*x3**2*v6+3.d0*v3**2*x3**2+16.d0*u4**2*y3**2-
335 & 6.d0*u1*y3*v1*x3+4.d0*v4*x3*u3*y3-16.d0*v4*x3*u6*y3+
336 & u1*y3*v3*x3-16.d0*u4*y3*v5*x3-32.d0*v4*x3*u4*y3-
337 & 16.d0*v4*x3*u5*y3-6.d0*v3*x3*u3*y3-32.d0*u5*y3*v5*x3+
338 & 4.d0*u4*y3*v3*x3-16.d0*u4*y3*v6*x3-16.d0*u6*y3*v5*x3+
339 & 4.d0*u1*y3*v5*x3+4.d0*v1*x3*u5*y3-32.d0*v6*x3*u6*y3-
340 & 16.d0*v6*x3*u5*y3+v1*x3*u3*y3+4.d0*v2*x3*u6*y3+
341 & 4.d0*u2*y3*v6*x3+u2*y3*v1*x3+v2*x3*u1*y3+v2*x3*u3*y3+
342 & 3.d0*u1**2*y3**2-6.d0*u2*y3*v2*x3+3.d0*u2**2*y3**2+
343 & 16.d0*v4**2*x3**2+16.d0*u6**2*y3**2+16.d0*u4*y3**2*u5-
344 & v1*x3**2*v3-v2*x3**2*v3+16.d0*v4*x3**2*v5-u2*y3**2*u1-
345 & 4.d0*v2*x3**2*v6)*2.d0*aux
347 ans1 = 6.d0*u3**2*y3*y2+32.d0*u5**2*y2*y3+32.d0*u6**2*y2*y3+
348 & 6.d0*u1**2*y3*y2+32.d0*v6**2*x3*x2+32.d0*u4**2*y2*y3+
349 & 6.d0*v1**2*x2*x3-8.d0*u2*y2*u6*y3-2.d0*v2*x2*v3*x3-
350 & 2.d0*u2*y2*u3*y3+u2*y2*v1*x3+6.d0*v3**2*x2*x3+
351 & 4.d0*u2*y2*v6*x3+6.d0*u2**2*y2*y3+6.d0*v2**2*x2*x3-
352 & 6.d0*u2*y2*v2*x3-6.d0*v2*x2*u2*y3-32.d0*u5*y2*v5*x3-
353 & 8.d0*u4*y3*u3*y2+4.d0*u4*y3*v3*x2+32.d0*u4*y3*u6*y2-
354 & 32.d0*v6*x3*u6*y2+32.d0*v5**2*x2*x3-16.d0*u6*y3*v5*x2-
355 & 8.d0*u1*y3*u5*y2+4.d0*u1*y3*v5*x2+32.d0*u6*y2*u5*y3+
356 & 4.d0*u1*y2*v5*x3-16.d0*u6*y2*v5*x3+4.d0*v1*x3*u5*y2-
357 & 32.d0*v6*x2*u6*y3-16.d0*v6*x2*u5*y3+32.d0*v6*x3*v5*x2+
358 & 4.d0*v1*x2*u5*y3-8.d0*v1*x2*v5*x3-16.d0*v6*x3*u5*y2+
359 & v1*x3*u3*y2-6.d0*u1*y2*v1*x3+v2*x3*u1*y2+u1*y2*v3*x3+
360 & 4.d0*v2*x3*u6*y2+u2*y3*v1*x2+4.d0*u2*y3*v6*x2+v2*x3*u3*y2+
361 & 4.d0*u4*y2*v3*x3-16.d0*u4*y2*v6*x3+u2*y3*v3*x2+v1*x2*u3*y3-
362 & 8.d0*v2*x2*v6*x3+v2*x2*u3*y3+u2*y2*v3*x3-2.d0*u2*y2*u1*y3+
363 & v2*x2*u1*y3-2.d0*v2*x2*v1*x3+4.d0*v2*x2*u6*y3+
364 & 32.d0*v4*x2*v5*x3-16.d0*v4*x2*u5*y3-32.d0*v4*x2*u4*y3-
365 & 2.d0*u1*y3*u3*y2+u1*y3*v3*x2-16.d0*u4*y3*v6*x2
366 a23(ielem) = -(-16.d0*v4*x2*u6*y3-16.d0*v4*x3*u6*y2-
367 & 8.d0*v4*x2*v3*x3+32.d0*v4*x2*v6*x3+
368 & 4.d0*v4*x2*u3*y3-2.d0*v1*x2*v3*x3+
369 & 4.d0*v4*x3*u3*y2-6.d0*u1*y3*v1*x2-
370 & 6.d0*v3*x2*u3*y3-16.d0*u4*y3*v5*x2-
371 & 16.d0*v4*x3*u5*y2+32.d0*u4*y2*u5*y3-
372 & 32.d0*u4*y2*v4*x3-16.d0*u4*y2*v5*x3-
373 & 6.d0*v3*x3*u3*y2-32.d0*u5*y3*v5*x2+
374 & 32.d0*v4**2*x2*x3 + ans1)*aux
380 a12(ielem) = - a22(ielem) - a23(ielem)
381 a13(ielem) = - a11(ielem) - a12(ielem)
382 a33(ielem) = - a13(ielem) - a23(ielem)
393 IF(ielmu.EQ.ielmv)
THEN 395 101
FORMAT(1x,
'MT04AA (BIEF) :',/,
396 & 1x,
'DISCRETIZATION OF U AND V : ',1i6,
' NOT AVAILABLE')
398 WRITE(
lu,201) ielmu,ielmv
399 201
FORMAT(1x,
'MT04AA (BIEF) :',/,
400 & 1x,
'U AND V OF A DIFFERENT DISCRETISATION:',1i6,3x,1i6)
subroutine mt04aa(A11, A12, A13, A22, A23, A33, XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE, NELEM, NELMAX)