5 &( a11 , a12 , a13 , a14 ,
9 & xmul,su,sv,u,v,xel,yel,ikle1,ikle2,ikle3,ikle4,nelem,nelmax)
74 INTEGER,
INTENT(IN) :: NELEM,NELMAX
75 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
76 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
78 DOUBLE PRECISION,
INTENT(INOUT) :: A11(*),A12(*),A13(*),A14(*)
79 DOUBLE PRECISION,
INTENT(INOUT) :: A22(*),A23(*),A24(*)
80 DOUBLE PRECISION,
INTENT(INOUT) :: A33(*),A34(*)
81 DOUBLE PRECISION,
INTENT(INOUT) :: A44(*)
83 DOUBLE PRECISION,
INTENT(IN) :: XMUL
84 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*)
87 TYPE(bief_obj),
INTENT(IN) :: SU,SV
89 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
95 INTEGER IELMU,IELMV,IELEM
97 DOUBLE PRECISION X2,X3,Y2,Y3,ANS1,ANS2
98 DOUBLE PRECISION U1,U2,U3,U4
99 DOUBLE PRECISION V1,V2,V3,V4
110 IF(ielmu.EQ.11.AND.ielmv.EQ.11)
THEN 140 & (x2**2*(17*v3**2+25*v3*v2+37*v3*v1+53*v2**2
141 & +73*v2*v1+65*v1**2)+8*x2*x3*(-7*v3**2-5*v3*v2-11*v3
142 & *v1-7*v2**2-11*v2*v1-13*v1**2)+x2*y2*(-34*v3*u3-25*
143 & v3*u2-37*v3*u1-25*v2*u3-106*v2*u2-73*v2*u1-37*v1*u3-
144 & 73*v1*u2-130*v1*u1)+4*x2*y3*(14*v3*u3+5*v3*u2+11*v3*
145 & u1+5*v2*u3+14*v2*u2+11*v2*u1+11*v1*u3+11*v1*u2+26*
146 & v1*u1)+x3**2*(53*v3**2+25*v3*v2+73*v3*v1+17*v2**2+37
147 & *v2*v1+65*v1**2)+4*x3*y2*(14*v3*u3+5*v3*u2+11*v3*u1+
148 & 5*v2*u3+14*v2*u2+11*v2*u1+11*v1*u3+11*v1*u2+26*v1*u1
149 & )+x3*y3*(-106*v3*u3-25*v3*u2-73*v3*u1-25*v2*u3-34*v2
150 & *u2-37*v2*u1-73*v1*u3-37*v1*u2-130*v1*u1)+y2**2*(17*
151 & u3**2+25*u3*u2+37*u3*u1+53*u2**2+73*u2*u1+65*u1**2)+
152 & 8*y2*y3*(-7*u3**2-5*u3*u2-11*u3*u1-7*u2**2-11*u2*u1-
153 & 13*u1**2)+y3**2*(53*u3**2+25*u3*u2+73*u3*u1+17*u2**2+
154 & 37*u2*u1+65*u1**2))*xmul/(324*(x2*y3-x3*y2))
157 & (4*x2**2*(5*(v2+v1)*v3+v3**2+13*v2**2+17*v2
158 & *v1+13*v1**2)+x2*(2*(5*(v2+v1)*v3+v3**2+13*v2**2+17*
159 & v2*v1+13*v1**2)*x3-(5*u3+26*u2+17*u1)*(y3+4*y2)*v2-(
160 & 5*u3+17*u2+26*u1)*(y3+4*y2)*v1-(2*u3+5*u2+5*u1)*(y3
161 & +4*y2)*v3)-2*x3**2*(5*(v2+v1)*v3+v3**2+13*v2**2+17*
162 & v2*v1+13*v1**2)+x3*((5*u3+26*u2+17*u1)*v2+(5*u3+17*
163 & u2+26*u1)*v1+(2*u3+5*u2+5*u1)*v3)*(2*y3-y2)+2*(y3+
164 & y2)*(y3-2*y2)*(-5*(u2+u1)*u3-u3**2-13*u2**2-17*u2*u1-
165 & 13*u1**2))*xmul/(648*(x2*y3-x3*y2))
168 & (-2*x2**2*((5*v2+17*v1)*v3+13*v3**2+v2**2+
169 & 5*v2*v1+13*v1**2)+x2*(2*((5*v2+17*v1)*v3+13*v3**2+v2
170 & **2+5*v2*v1+13*v1**2)*x3-(26*u3+5*u2+17*u1)*(y3-2*
171 & y2)*v3-(17*u3+5*u2+26*u1)*(y3-2*y2)*v1-(5*u3+2*u2+
172 & 5*u1)*(y3-2*y2)*v2)+4*x3**2*((5*v2+17*v1)*v3+13*v3**
173 & 2+v2**2+5*v2*v1+13*v1**2)-x3*((26*u3+5*u2+17*u1)*v3+
174 & (17*u3+5*u2+26*u1)*v1+(5*u3+2*u2+5*u1)*v2)*(4*y3+
175 & y2)+2*(2*y3-y2)*(y3+y2)*((5*u2+17*u1)*u3+13*u3**2+u2
176 & **2+5*u2*u1+13*u1**2))*xmul/(648*(x2*y3-x3*y2))
179 & (2*x2**2*(7*v3**2+11*v3*v2+5*v3*v1+13*v2**
180 & 2+11*v2*v1+7*v1**2)+2*x2*x3*(-25*v3**2-29*v3*v2-5*
181 & v3*v1-13*v2**2+7*v2*v1+11*v1**2)+2*x2*y2*(-14*v3*u3-
182 & 11*v3*u2-5*v3*u1-11*v2*u3-26*v2*u2-11*v2*u1-5*v1*u3-
183 & 11*v1*u2-14*v1*u1)+x2*y3*(50*v3*u3+29*v3*u2+5*v3*u1+
184 & 29*v2*u3+26*v2*u2-7*v2*u1+5*v1*u3-7*v1*u2-22*v1*u1)+
185 & x3**2*(53*v3**2+73*v3*v2+25*v3*v1+65*v2**2+37*v2*v1+
186 & 17*v1**2)+x3*y2*(50*v3*u3+29*v3*u2+5*v3*u1+29*v2*u3+
187 & 26*v2*u2-7*v2*u1+5*v1*u3-7*v1*u2-22*v1*u1)+x3*y3*(-
188 & 106*v3*u3-73*v3*u2-25*v3*u1-73*v2*u3-130*v2*u2-37*v2
189 & *u1-25*v1*u3-37*v1*u2-34*v1*u1)+2*y2**2*(7*u3**2+11
190 & *u3*u2+5*u3*u1+13*u2**2+11*u2*u1+7*u1**2)+2*y2*y3*(-
191 & 25*u3**2-29*u3*u2-5*u3*u1-13*u2**2+7*u2*u1+11*u1**2)
192 & +y3**2*(53*u3**2+73*u3*u2+25*u3*u1+65*u2**2+37*u2*u1
193 & +17*u1**2))*xmul/(324*(x2*y3-x3*y2))
196 & (-((10*((17*v2+5*v1)*v3+13*v3**2+13*v2**2+
197 & 5*v2*v1+v1**2)*x3-(26*u3+17*u2+5*u1)*(5*y3-4*y2)*v3-
198 & (17*u3+26*u2+5*u1)*(5*y3-4*y2)*v2-(5*u3+5*u2+2*u1
199 & )*(5*y3-4*y2)*v1)*x2-4*((17*v2+5*v1)*v3+13*v3**2+
200 & 13*v2**2+5*v2*v1+v1**2)*x2**2-4*((17*v2+5*v1)*v3+13*
201 & v3**2+13*v2**2+5*v2*v1+v1**2)*x3**2+((26*u3+17*u2+5*
202 & u1)*v3+(17*u3+26*u2+5*u1)*v2+(5*u3+5*u2+2*u1)*v1)*(
203 & 4*y3-5*y2)*x3-2*(17*u2+5*u1)*(2*y3-y2)*(y3-2*y2)*u3
204 & -26*(2*y3-y2)*(y3-2*y2)*u3**2-26*(2*y3-y2)*(y3-2*y2
205 & )*u2**2-10*(2*y3-y2)*(y3-2*y2)*u2*u1-2*(2*y3-y2)*(y3
206 & -2*y2)*u1**2))*xmul/(648*(x2*y3-x3*y2))
209 & (x2**2*(65*v3**2+73*v3*v2+37*v3*v1+53*v2**2
210 & +25*v2*v1+17*v1**2)+2*x2*x3*(-13*v3**2-29*v3*v2+7*
211 & v3*v1-25*v2**2-5*v2*v1+11*v1**2)+x2*y2*(-130*v3*u3-
212 & 73*v3*u2-37*v3*u1-73*v2*u3-106*v2*u2-25*v2*u1-37*v1*
213 & u3-25*v1*u2-34*v1*u1)+x2*y3*(26*v3*u3+29*v3*u2-7*v3*
214 & u1+29*v2*u3+50*v2*u2+5*v2*u1-7*v1*u3+5*v1*u2-22*v1*
215 & u1)+2*x3**2*(13*v3**2+11*v3*v2+11*v3*v1+7*v2**2+5*
216 & v2*v1+7*v1**2)+x3*y2*(26*v3*u3+29*v3*u2-7*v3*u1+29*
217 & v2*u3+50*v2*u2+5*v2*u1-7*v1*u3+5*v1*u2-22*v1*u1)+2*
218 & x3*y3*(-26*v3*u3-11*v3*u2-11*v3*u1-11*v2*u3-14*v2*u2
219 & -5*v2*u1-11*v1*u3-5*v1*u2-14*v1*u1)+y2**2*(65*u3**2+
220 & 73*u3*u2+37*u3*u1+53*u2**2+25*u2*u1+17*u1**2)+2*y2*
221 & y3*(-13*u3**2-29*u3*u2+7*u3*u1-25*u2**2-5*u2*u1+11*
222 & u1**2)+2*y3**2*(13*u3**2+11*u3*u2+11*u3*u1+7*u2**2+
223 & 5*u2*u1+7*u1**2))*xmul/(324*(x2*y3-x3*y2))
229 a14(ielem) = - a11(ielem) - a12(ielem) - a13(ielem)
231 a24(ielem) = - a12(ielem) - a22(ielem) - a23(ielem)
233 a34(ielem) = - a13(ielem) - a23(ielem) - a33(ielem)
235 a44(ielem) = - a14(ielem) - a24(ielem) - a34(ielem)
241 ELSEIF(ielmu.EQ.12.AND.ielmv.EQ.12)
THEN 272 & ((2*((v2+v1)*v4+v4**2+v2**2+v2*v1+v1**2)*x3-(
273 & 2*u4+u2+u1)*(y3+4*y2)*v4-(u4+2*u2+u1)*(y3+4*y2)*v2-(u4
274 & +u2+2*u1)*(y3+4*y2)*v1)*x2+2*((v2+v1)*v4+v4**2+v2**2+
275 & v2*v1+v1**2)*(2*x2**2-x3**2)+((2*u4+u2+u1)*v4+(u4+2*u2
276 & +u1)*v2+(u4+u2+2*u1)*v1)*(2*y3-y2)*x3-2*(u4**2+u2**2+
277 & u2*u1+u1**2)*(y3+y2)*(y3-2*y2)-2*(u2+u1)*(y3+y2)*(y3-2
278 & *y2)*u4)*xmul/(72*(x2*y3-x3*y2))
281 & (-(2*x2**2)*(v3**2+v3*v4+v3*v1+v4**2+v4*v1+v1
282 & **2)+2*x2*x3*(v3**2+v3*v4+v3*v1+v4**2+v4*v1+v1**2)+2*x2
283 & *y2*(2*v3*u3+v3*u4+v3*u1+v4*u3+2*v4*u4+v4*u1+v1*u3+v1*
284 & u4+2*v1*u1)+x2*y3*(-2*v3*u3-v3*u4-v3*u1-v4*u3-2*v4*u4-
285 & v4*u1-v1*u3-v1*u4-2*v1*u1)+4*x3**2*(v3**2+v3*v4+v3*v1+
286 & v4**2+v4*v1+v1**2)+x3*y2*(-2*v3*u3-v3*u4-v3*u1-v4*u3-2*
287 & v4*u4-v4*u1-v1*u3-v1*u4-2*v1*u1)+4*x3*y3*(-2*v3*u3-v3*
288 & u4-v3*u1-v4*u3-2*v4*u4-v4*u1-v1*u3-v1*u4-2*v1*u1)-(2*
289 & y2**2)*(u3**2+u3*u4+u3*u1+u4**2+u4*u1+u1**2)+2*y2*y3*(u3
290 & **2+u3*u4+u3*u1+u4**2+u4*u1+u1**2)+4*y3**2*(u3**2+u3*u4+
291 & u3*u1+u4**2+u4*u1+u1**2))*xmul/(72*x2*y3-72*x3*y2)
294 & (-(4*x2**2)*(v4**2+v4*v2+v4*v1+v2**2+v2*v1+v1
295 & **2)+2*x2*x3*(v3**2+v3*v4+v3*v1+2*v4**2+v4*v2+2*v4*v1+
296 & v2**2+v2*v1+2*v1**2)+4*x2*y2*(2*v4*u4+v4*u2+v4*u1+v2*
297 & u4+2*v2*u2+v2*u1+v1*u4+v1*u2+2*v1*u1)+x2*y3*(-2*v3*u3-
298 & v3*u4-v3*u1-v4*u3-4*v4*u4-v4*u2-2*v4*u1-v2*u4-2*v2*u2-
299 & v2*u1-v1*u3-2*v1*u4-v1*u2-4*v1*u1)-(4*x3**2)*(v3**2+v3
300 & *v4+v3*v1+v4**2+v4*v1+v1**2)+x3*y2*(-2*v3*u3-v3*u4-v3*u1
301 & -v4*u3-4*v4*u4-v4*u2-2*v4*u1-v2*u4-2*v2*u2-v2*u1-v1*u3
302 & -2*v1*u4-v1*u2-4*v1*u1)+4*x3*y3*(2*v3*u3+v3*u4+v3*u1+
303 & v4*u3+2*v4*u4+v4*u1+v1*u3+v1*u4+2*v1*u1)-(4*y2**2)*(u4
304 & **2+u4*u2+u4*u1+u2**2+u2*u1+u1**2)+2*y2*y3*(u3**2+u3*u4+
305 & u3*u1+2*u4**2+u4*u2+2*u4*u1+u2**2+u2*u1+2*u1**2)-(4*
306 & y3**2)*(u3**2+u3*u4+u3*u1+u4**2+u4*u1+u1**2))
307 & *xmul/(24*x2*y3-24*x3*y2)
310 & (-((10*((v4+v2)*v3+v3**2+v4**2+v4*v2+v2**2)*x3
311 & -(2*u3+u4+u2)*(5*y3-4*y2)*v3-(u3+2*u4+u2)*(5*y3-4*
312 & y2)*v4-(u3+u4+2*u2)*(5*y3-4*y2)*v2)*x2-4*((v4+v2)*v3+
313 & v3**2+v4**2+v4*v2+v2**2)*x2**2-4*((v4+v2)*v3+v3**2+v4**2
314 & +v4*v2+v2**2)*x3**2+((2*u3+u4+u2)*v3+(u3+2*u4+u2)*v4+(
315 & u3+u4+2*u2)*v2)*(4*y3-5*y2)*x3-2*(u4+u2)*(2*y3-y2)*(
316 & y3-2*y2)*u3-2*(2*y3-y2)*(y3-2*y2)*u3**2-2*(2*y3-y2)
317 & *(y3-2*y2)*u4**2-2*(2*y3-y2)*(y3-2*y2)*u4*u2-2*(2*
318 & y3-y2)*(y3-2*y2)*u2**2))*xmul/(72*(x2*y3-x3*y2))
320 ans2=-(4*y3**2)*(u3**2+u3*u4+u3*u2+u4**2+u4*u2+u2**2)
322 ans1=2*x2**2*(-v3**2-v3*v4-v3*v2-2*v4**2-2*v4*v2-v4*v1-
323 & 2*v2**2-v2*v1-v1**2)+2*x2*x3*(3*v3**2+3*v3*v4+3*v3*v2
324 & +2*v4**2+2*v4*v2-v4*v1+2*v2**2-v2*v1-v1**2)+2*x2*y2*(
325 & 2*v3*u3+v3*u4+v3*u2+v4*u3+4*v4*u4+2*v4*u2+v4*u1+v2*u3+
326 & 2*v2*u4+4*v2*u2+v2*u1+v1*u4+v1*u2+2*v1*u1)+x2*y3*(-6*
327 & v3*u3-3*v3*u4-3*v3*u2-3*v4*u3-4*v4*u4-2*v4*u2+v4*u1-
328 & 3*v2*u3-2*v2*u4-4*v2*u2+v2*u1+v1*u4+v1*u2+2*v1*u1)-(4
329 & *x3**2)*(v3**2+v3*v4+v3*v2+v4**2+v4*v2+v2**2)+x3*y2*(-6*
330 & v3*u3-3*v3*u4-3*v3*u2-3*v4*u3-4*v4*u4-2*v4*u2+v4*u1-
331 & 3*v2*u3-2*v2*u4-4*v2*u2+v2*u1+v1*u4+v1*u2+2*v1*u1)+4*
332 & x3*y3*(2*v3*u3+v3*u4+v3*u2+v4*u3+2*v4*u4+v4*u2+v2*u3+v2
333 & *u4+2*v2*u2)+2*y2**2*(-u3**2-u3*u4-u3*u2-2*u4**2-2*u4
334 & *u2-u4*u1-2*u2**2-u2*u1-u1**2)+2*y2*y3*(3*u3**2+3*u3*
335 & u4+3*u3*u2+2*u4**2+2*u4*u2-u4*u1+2*u2**2-u2*u1-u1**2)
338 a24(ielem)= ans1*xmul/(24*x2*y3-24*x3*y2)
340 ans2=2*y3**2*(-2*u3**2-2*u3*u4-u3*u2-u3*u1-2*u4**2-u4*
341 & u2-u4*u1-u2**2-u1**2)
343 ans1=-(4*x2**2)*(v3**2+v3*v4+v3*v2+v4**2+v4*v2+v2**2)+2*
344 & x2*x3*(2*v3**2+2*v3*v4+3*v3*v2-v3*v1+2*v4**2+3*v4*v2
345 & -v4*v1+3*v2**2-v1**2)+4*x2*y2*(2*v3*u3+v3*u4+v3*u2+v4*
346 & u3+2*v4*u4+v4*u2+v2*u3+v2*u4+2*v2*u2)+x2*y3*(-4*v3*u3-
347 & 2*v3*u4-3*v3*u2+v3*u1-2*v4*u3-4*v4*u4-3*v4*u2+v4*u1-
348 & 3*v2*u3-3*v2*u4-6*v2*u2+v1*u3+v1*u4+2*v1*u1)+2*x3**2*
349 & (-2*v3**2-2*v3*v4-v3*v2-v3*v1-2*v4**2-v4*v2-v4*v1-v2**
350 & 2-v1**2)+x3*y2*(-4*v3*u3-2*v3*u4-3*v3*u2+v3*u1-2*v4*
351 & u3-4*v4*u4-3*v4*u2+v4*u1-3*v2*u3-3*v2*u4-6*v2*u2+v1*
352 & u3+v1*u4+2*v1*u1)+2*x3*y3*(4*v3*u3+2*v3*u4+v3*u2+v3*
353 & u1+2*v4*u3+4*v4*u4+v4*u2+v4*u1+v2*u3+v2*u4+2*v2*u2+v1*
354 & u3+v1*u4+2*v1*u1)-(4*y2**2)*(u3**2+u3*u4+u3*u2+u4**2+u4
355 & *u2+u2**2)+2*y2*y3*(2*u3**2+2*u3*u4+3*u3*u2-u3*u1+2*
356 & u4**2+3*u4*u2-u4*u1+3*u2**2-u1**2)+ans2
358 a34(ielem)=ans1*xmul/(24*x2*y3-24*x3*y2)
364 a11(ielem) = - a12(ielem) - a13(ielem) - a14(ielem)
366 a22(ielem) = - a12(ielem) - a23(ielem) - a24(ielem)
368 a33(ielem) = - a13(ielem) - a23(ielem) - a34(ielem)
370 a44(ielem) = - a14(ielem) - a24(ielem) - a34(ielem)
377 IF(ielmu.EQ.ielmv)
THEN 379 101
FORMAT(1x,
'MT04BB (BIEF) :',/,
380 & 1x,
'DISCRETIZATION OF U AND V : ',1i6,
' NOT AVAILABLE')
382 WRITE(
lu,201) ielmu,ielmv
383 201
FORMAT(1x,
'MT04BB (BIEF) :',/,
384 & 1x,
'U AND V OF A DIFFERENT DISCRETISATION:',1i6,3x,1i6)
subroutine mt04bb(A11, A12, A13, A14, A22, A23, A24, A33, A34, A44, XMUL, SU, SV, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX)