5 &( xmul,su,sv,sw,u,v,w,f,h,x,y,z,
6 & ikle1,ikle2,ikle3,ikle4,ikle5,ikle6,nelem,nelmax,
7 & w1,w2,w3,w4,w5,w6,specad,formul,nelem2)
111 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NELEM2
112 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
113 INTEGER,
INTENT(IN) :: IKLE4(nelmax),IKLE5(nelmax),IKLE6(nelmax)
115 DOUBLE PRECISION,
INTENT(IN) ::X(nelmax,6),Y(nelmax,6),Z(*)
116 DOUBLE PRECISION,
INTENT(INOUT)::W1(nelmax),W2(nelmax),W3(nelmax)
117 DOUBLE PRECISION,
INTENT(INOUT)::W4(nelmax),W5(nelmax),W6(nelmax)
118 DOUBLE PRECISION,
INTENT(IN) ::XMUL
120 LOGICAL,
INTENT(IN) :: SPECAD
121 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
125 TYPE(bief_obj),
INTENT(IN) :: SU,SV,SW
126 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*),W(*),F(*)
127 DOUBLE PRECISION,
INTENT(IN) :: H(nelem2,2)
131 DOUBLE PRECISION SUR144,X1,X2,X3,Y1,Y2,Y3,H1,H2,H3,SHT
132 DOUBLE PRECISION HU1,HU2,HUINF,HUSUP,HV1,HV2,HVINF,HVSUP
133 DOUBLE PRECISION U1,U2,U3,U4,U5,U6,V1,V2,V3,V4,V5,V6
134 DOUBLE PRECISION Q1,Q2,Q3,Q4,Q5,Q6,Z2,Z3,Z4,Z5,Z6
136 INTEGER I1,I2,I3,I4,I5,I6,IELEM2
137 INTEGER IELEM,IELMU,IELMV,IELMW
141 sur144 = xmul / 144.d0
153 IF(formul(14:16).EQ.
'HOR')
THEN 157 IF(ielmu.EQ.41.AND.ielmv.EQ.41)
THEN 181 hu1 = (u(i1)+u(i2)+u(i3))*sht + h1*u(i1) + h2*u(i2)
183 hu2 = (u(i4)+u(i5)+u(i6))*sht + h1*u(i4) + h2*u(i5)
185 huinf = (hu1+hu1+hu2) * sur144
186 husup = (hu1+hu2+hu2) * sur144
188 hv1 = (v(i1)+v(i2)+v(i3))*sht + h1*v(i1) + h2*v(i2)
190 hv2 = (v(i4)+v(i5)+v(i6))*sht + h1*v(i4) + h2*v(i5)
192 hvinf = (hv1+hv1+hv2) * sur144
193 hvsup = (hv1+hv2+hv2) * sur144
198 y1 = y(ielem,2) - y(ielem,3)
205 x1 = x(ielem,3) - x(ielem,2)
209 w1(ielem) = y1*huinf + x1*hvinf
210 w2(ielem) = y2*huinf + x2*hvinf
211 w3(ielem) = y3*huinf + x3*hvinf
212 w4(ielem) = y1*husup + x1*hvsup
213 w5(ielem) = y2*husup + x2*hvsup
214 w6(ielem) = y3*husup + x3*hvsup
227 ielem2 = mod(ielem-1,nelem2) + 1
241 u1=u(i1)+f(i1)*h(ielem2,1)
242 u2=u(i2)+f(i2)*h(ielem2,1)
243 u3=u(i3)+f(i3)*h(ielem2,1)
244 u4=u(i4)+f(i4)*h(ielem2,1)
245 u5=u(i5)+f(i5)*h(ielem2,1)
246 u6=u(i6)+f(i6)*h(ielem2,1)
247 v1=v(i1)+f(i1)*h(ielem2,2)
248 v2=v(i2)+f(i2)*h(ielem2,2)
249 v3=v(i3)+f(i3)*h(ielem2,2)
250 v4=v(i4)+f(i4)*h(ielem2,2)
251 v5=v(i5)+f(i5)*h(ielem2,2)
252 v6=v(i6)+f(i6)*h(ielem2,2)
254 hu1 = (u1+u2+u3)*sht + h1*u1 + h2*u2 + h3*u3
255 hu2 = (u4+u5+u6)*sht + h1*u4 + h2*u5 + h3*u6
256 huinf = (hu1+hu1+hu2) * sur144
257 husup = (hu1+hu2+hu2) * sur144
259 hv1 = (v1+v2+v3)*sht + h1*v1 + h2*v2 + h3*v3
260 hv2 = (v4+v5+v6)*sht + h1*v4 + h2*v5 + h3*v6
261 hvinf = (hv1+hv1+hv2) * sur144
262 hvsup = (hv1+hv2+hv2) * sur144
268 y1 = y(ielem,2) - y(ielem,3)
275 x1 = x(ielem,3) - x(ielem,2)
279 w1(ielem) = y1*huinf + x1*hvinf
280 w2(ielem) = y2*huinf + x2*hvinf
281 w3(ielem) = y3*huinf + x3*hvinf
282 w4(ielem) = y1*husup + x1*hvsup
283 w5(ielem) = y2*husup + x2*hvsup
284 w6(ielem) = y3*husup + x3*hvsup
298 WRITE(
lu,102) ielmu,su%NAME
299 102
FORMAT(1x,
'VC04PP (BIEF) :',/,
300 & 1x,
'DISCRETISATION OF U ET V : ',1i6,
' NOT IMPLEMENTED',/,
301 & 1x,
'REAL NAME OF U : ',a6)
309 ELSEIF(formul(14:16).EQ.
'TOT')
THEN 374 w1(ielem) = (-3*q6-3*q5-3*q2-3*q3-6*q4-6*q1)*(y3*x2-x3*y2)
375 w2(ielem) = (-3*q6-6*q5-6*q2-3*q3-3*q4-3*q1)*(y3*x2-x3*y2)
376 w3(ielem) = (-6*q6-3*q1-3*q4-6*q3-3*q2-3*q5)*(y3*x2-x3*y2)
377 w4(ielem) = - w1(ielem)
378 w5(ielem) = - w2(ielem)
379 w6(ielem) = - w3(ielem)
383 w1(ielem) = w1(ielem) +
384 & (-2*z2*u1+3*z6*u3+z6*u2-4*z2*u2-z6*u5+z5*u4+3*z4*u5+4*z5*
385 &u2-2*z2*u5-2*z3*u5+6*z4*u4-3*z6*u4-3*z3*u6-6*z3*u1-3*z3*u4+2*z5*u3
386 &+2*z5*u5+6*z4*u1+3*z4*u2+z5*u6-2*z2*u3-4*z3*u2-z2*u4-z2*u6+3*z4*u3
387 &+3*z4*u6+2*z5*u1-6*z3*u3)*y2+(6*z2*u1-4*z6*u3-2*z6*u6-2*z6*u2+6*z2
388 &*u2-z6*u5+3*z5*u4-3*z4*u5-3*z5*u2+3*z2*u5+z3*u5-6*z4*u4-z6*u4+2*z3
389 &*u6+2*z3*u1+z3*u4-z5*u3-6*z4*u1-3*z4*u2+z5*u6+4*z2*u3+2*z3*u2+3*z2
390 &*u4+2*z2*u6-3*z4*u3-3*z4*u6+4*z3*u3-2*z6*u1)*y3
391 w2(ielem) = w2(ielem) +
392 & (z4*u3-4*z3*u2+2*z4*u2-2*z6*u4+2*z4*u6-2*z3*u3-z6*u3-2*z6
393 &*u6-2*z3*u5+2*z4*u4-2*z3*u1+z4*u1-z3*u6-z6*u1-2*z6*u2-4*z6*u5+4*z4
394 &*u5-z3*u4)*y2+(z4*u3-z4*u6-2*z3*u2+6*z5*u5+4*z6*u3+2*z6*u2-2*z3*u6
395 &+3*z5*u3+3*z5*u4-z3*u4+6*z5*u2+3*z4*u1+z6*u4-z3*u5+2*z6*u6-4*z3*u3
396 &+2*z6*u1+3*z5*u1+3*z5*u6+z6*u5-2*z3*u1-3*z4*u5)*y3
397 w3(ielem) = w3(ielem) +
398 & (-6*z6*u6-2*z5*u1-3*z6*u1-z5*u6+2*z2*u5+4*z2*u2+z2*u4-2*z
399 &5*u5+2*z2*u1-2*z5*u3-3*z6*u2+3*z4*u6+z2*u6-6*z6*u3-4*z5*u2+2*z2*u3
400 &-z5*u4+z4*u5-z4*u2-3*z4*u1-3*z6*u5-3*z6*u4)*y2+(-2*z4*u3-z4*u2-4*z
401 &4*u6+2*z2*u2+2*z5*u3+4*z2*u3-2*z4*u4+2*z5*u4+2*z2*u6+z5*u1+2*z2*u1
402 &-z4*u1+z5*u2+z2*u4+z2*u5+2*z5*u5+4*z5*u6-2*z4*u5)*y3
403 w4(ielem) = w4(ielem) +
404 & (z3*u2-2*z2*u6+4*z5*u5-2*z2*u2+6*z6*u6+3*z6*u1+2*z6*u2-z3
405 &*u5+2*z5*u6-2*z2*u4+2*z5*u2-3*z3*u6-z2*u3+3*z6*u3-z2*u1+2*z5*u4+6*
406 &z6*u4+3*z3*u1+z5*u3+4*z6*u5-4*z2*u5+z5*u1)*y2+(z3*u2-4*z5*u6-2*z6*
407 &u3-2*z5*u3-6*z5*u5-6*z5*u4-z6*u1+4*z3*u6-z2*u3+2*z3*u3-2*z6*u4+2*z
408 &3*u4-4*z6*u6+2*z3*u5+3*z2*u5-2*z6*u5+z2*u6-3*z5*u2-z6*u2-3*z2*u1+z
410 w5(ielem) = w5(ielem) +
411 & (2*z6*u6+z6*u1-z4*u1-2*z4*u6-2*z4*u4+z3*u4+2*z3*u3+2*z3*u
412 &5+4*z3*u2+z3*u6-2*z4*u2+z6*u3+2*z6*u4-4*z4*u5+2*z6*u2+2*z3*u1+4*z6
413 &*u5-z4*u3)*y2+(2*z4*u3-z3*u1-z3*u2-6*z2*u2+2*z6*u3+4*z4*u6+z6*u1+3
414 &*z4*u2+6*z4*u4-4*z3*u6-3*z2*u3+3*z4*u1+2*z6*u4-2*z3*u4+6*z4*u5-2*z
415 &3*u3+z6*u2-3*z2*u4-6*z2*u5+2*z6*u5-2*z3*u5+4*z6*u6-3*z2*u6-3*z2*u1
417 w6(ielem) = w6(ielem) +
418 & (3*z3*u5+2*z2*u4-2*z5*u2+3*z3*u2-z5*u1-2*z5*u6+z2*u1-2*z4
419 &*u2+2*z2*u2+4*z2*u5-z5*u3-6*z4*u6+2*z2*u6+3*z3*u4+6*z3*u3+6*z3*u6+
420 &z2*u3-6*z4*u4+3*z3*u1-2*z5*u4-4*z4*u5-3*z4*u1-4*z5*u5-3*z4*u3)*y2+
421 &(2*z4*u3-z5*u1+4*z4*u6-2*z2*u2-2*z5*u3+z4*u2+z4*u1-2*z5*u4-4*z2*u3
422 &-z5*u2-4*z5*u6-2*z5*u5-2*z2*u6-2*z2*u1-z2*u5-z2*u4+2*z4*u5+2*z4*u4
427 w1(ielem) = w1(ielem) +
428 & (-4*z5*v2-3*z4*v5-z5*v6+z6*v5+2*z3*v5+4*z2*v2+3*z3*v6+z2*
429 &v4+4*z3*v2-2*z5*v3-z6*v2+z2*v6+6*z3*v1-6*z4*v1-2*z5*v5+6*z3*v3+2*z
430 &2*v3-3*z4*v3-2*z5*v1+3*z3*v4-6*z4*v4-3*z4*v6+3*z6*v4-3*z6*v3-z5*v4
431 &+2*z2*v1+2*z2*v5-3*z4*v2)*x2+(3*z5*v2+3*z4*v5-z5*v6+z6*v5-z3*v5-6*
432 &z2*v2-2*z3*v6-3*z2*v4-2*z3*v2+z5*v3+2*z6*v2-2*z2*v6-2*z3*v1+6*z4*v
433 &1-4*z3*v3-4*z2*v3+3*z4*v3+2*z6*v6-z3*v4+6*z4*v4+3*z4*v6+z6*v4+4*z6
434 &*v3-3*z5*v4-6*z2*v1+2*z6*v1-3*z2*v5+3*z4*v2)*x3
435 w2(ielem) = w2(ielem) +
436 & (-2*z4*v6+2*z6*v6+z6*v3+2*z6*v4-z4*v3-z4*v1+2*z3*v1+z3*v4
437 &-4*z4*v5+4*z6*v5+2*z6*v2+2*z3*v3+z3*v6+4*z3*v2-2*z4*v4+2*z3*v5-2*z
438 &4*v2+z6*v1)*x2+(-3*z5*v1-6*z5*v2+2*z3*v1-3*z5*v4+2*z3*v6+4*z3*v3+z
439 &3*v4+z3*v5-6*z5*v5-3*z4*v1+3*z4*v5-2*z6*v2-z6*v5-z4*v3-2*z6*v1-4*z
440 &6*v3-3*z5*v6-z6*v4+z4*v6+2*z3*v2-3*z5*v3-2*z6*v6)*x3
441 w3(ielem) = w3(ielem) +
442 & (-2*z2*v5+z5*v4+6*z6*v3+6*z6*v6+3*z6*v5-2*z2*v1+3*z6*v4+2
443 &*z5*v5+z5*v6+3*z4*v1-2*z2*v3-z4*v5+3*z6*v1-z2*v6-3*z4*v6+2*z5*v3-4
444 &*z2*v2-z2*v4+3*z6*v2+4*z5*v2+z4*v2+2*z5*v1)*x2+(-4*z5*v6-2*z2*v2-2
445 &*z2*v1-z2*v4-z5*v1+z4*v1+z4*v2+2*z4*v4-2*z5*v5+4*z4*v6-z2*v5-2*z2*
446 &v6+2*z4*v5-2*z5*v4-4*z2*v3-z5*v2+2*z4*v3-2*z5*v3)*x3
447 w4(ielem) = w4(ielem) +
448 & (-2*z5*v4-6*z6*v6-2*z5*v6+4*z2*v5-4*z5*v5-4*z6*v5+2*z2*v2
449 &+z2*v3-6*z6*v4+2*z2*v6+3*z3*v6-z5*v1-2*z6*v2-z5*v3-3*z6*v3+z2*v1+2
450 &*z2*v4-3*z6*v1-z3*v2-2*z5*v2-3*z3*v1+z3*v5)*x2+(3*z5*v1+2*z6*v5+3*
451 &z2*v1-z3*v2-z3*v1+2*z6*v4-4*z3*v6-2*z3*v3+z6*v2-2*z3*v4+2*z6*v3+6*
452 &z5*v5+z2*v3-z2*v6+2*z5*v3+z6*v1+4*z5*v6+6*z5*v4-2*z3*v5+3*z5*v2+4*
454 w5(ielem) = w5(ielem) +
455 & (z4*v3-z6*v1-2*z6*v6+4*z4*v5-2*z3*v3-z6*v3+2*z4*v4-z3*v4+
456 &2*z4*v6-2*z6*v4-4*z6*v5-2*z3*v1-z3*v6-4*z3*v2-2*z6*v2-2*z3*v5+2*z4
457 &*v2+z4*v1)*x2+(-2*z6*v5+3*z2*v1-4*z4*v6+z3*v1-2*z4*v3+4*z3*v6+2*z3
458 &*v3+2*z3*v4-6*z4*v5-3*z4*v1-3*z4*v2-6*z4*v4+3*z2*v4-2*z6*v3+6*z2*v
459 &2+3*z2*v3-4*z6*v6+3*z2*v6-z6*v1-z6*v2+6*z2*v5-2*z6*v4+2*z3*v5+z3*v
461 w6(ielem) = w6(ielem) +
462 & (6*z4*v6-2*z2*v2+2*z5*v4-4*z2*v5-6*z3*v3+2*z5*v6-z2*v1+6*
463 &z4*v4+3*z4*v1+3*z4*v3+z5*v1-3*z3*v1-3*z3*v4-2*z2*v6-6*z3*v6+z5*v3-
464 &z2*v3-2*z2*v4+4*z5*v5-3*z3*v2+2*z5*v2-3*z3*v5+2*z4*v2+4*z4*v5)*x2+
465 &(2*z5*v4+2*z2*v1+z5*v1-z4*v2-2*z4*v4+2*z5*v5-z4*v1+4*z5*v6+2*z2*v2
466 &-2*z4*v5+2*z5*v3+z5*v2+4*z2*v3+z2*v5+z2*v4+2*z2*v6-4*z4*v6-2*z4*v3
469 w1(ielem) = w1(ielem)*sur144
470 w2(ielem) = w2(ielem)*sur144
471 w3(ielem) = w3(ielem)*sur144
472 w4(ielem) = w4(ielem)*sur144
473 w5(ielem) = w5(ielem)*sur144
474 w6(ielem) = w6(ielem)*sur144
488 WRITE(
lu,302) ielmu,su%NAME
489 302
FORMAT(1x,
'VC04PP (BIEF) :',/,
490 & 1x,
'DISCRETISATION OF U,V,W : ',1i6,
' NOT IMPLEMENTED',/,
491 & 1x,
'REAL NAME OF U : ',a6)
504 202
FORMAT(1x,
'VC04PP (BIEF) :',/,
505 & 1x,
'HOR OR TOT LACKING AT THE END OF THE FORMULA : ',a16)
subroutine vc04pp(XMUL, SU, SV, SW, U, V, W, F, H, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, SPECAD, FORMUL, NELEM2)