5 &(xmul,su,sv,sw,u,v,w,f,h,x,y,z,
6 & ikle1,ikle2,ikle3,ikle4,nelem,nelmax,w1,w2,w3,w4,formul,specad,
89 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NELEM2,NPOIN2
90 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
91 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
93 DOUBLE PRECISION,
INTENT(IN) :: X(*),Y(*),Z(*)
94 DOUBLE PRECISION,
INTENT(INOUT) :: W1(nelmax),W2(nelmax)
95 DOUBLE PRECISION,
INTENT(INOUT) :: W3(nelmax),W4(nelmax)
96 DOUBLE PRECISION,
INTENT(IN) :: XMUL
98 LOGICAL,
INTENT(IN) :: SPECAD
100 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
104 TYPE(bief_obj),
INTENT(IN) :: SU,SV,SW
105 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*),W(*),F(*)
106 DOUBLE PRECISION,
INTENT(IN) :: H(*)
110 DOUBLE PRECISION XSUR24,XSUR120,X2,X3,X4,Y2,Y3,Y4,Z1,Z2,Z3,Z4
111 DOUBLE PRECISION F123,F134,F142,F243
112 DOUBLE PRECISION U1,U2,U3,U4,V1,V2,V3,V4
113 DOUBLE PRECISION UUUU,VVVV,WWWW,H1,H2,H3,H4
114 INTEGER I1,I2,I3,I4,IELEM,IELEM2,IELMU,IELMV,IELMW
115 INTEGER IP,I12D,I22D,I32D,I42D
119 xsur24 = xmul / 24.d0
120 xsur120 = xmul / 120.d0
132 IF(formul(14:16).EQ.
'HOR')
THEN 136 IF(ielmu.EQ.51.AND.ielmv.EQ.51)
THEN 178 ip=(min(i1,i2,i3,i4)-1)/npoin2 +1
182 z1=dble((i1-1)/npoin2+1-ip)
183 z2=dble((i2-1)/npoin2+1-ip)-z1
184 z3=dble((i3-1)/npoin2+1-ip)-z1
185 z4=dble((i4-1)/npoin2+1-ip)-z1
189 i12d=mod(i1-1,npoin2)+1
190 i22d=mod(i2-1,npoin2)+1
191 i32d=mod(i3-1,npoin2)+1
192 i42d=mod(i4-1,npoin2)+1
198 h1=z(ip*npoin2+i12d)-z((ip-1)*npoin2+i12d)
199 h2=z(ip*npoin2+i22d)-z((ip-1)*npoin2+i22d)
200 h3=z(ip*npoin2+i32d)-z((ip-1)*npoin2+i32d)
201 h4=z(ip*npoin2+i42d)-z((ip-1)*npoin2+i42d)
220 uuuu=(h1*u1+h2*u2+h3*u3+h4*u4+(h1+h2+h3+h4)*(u1+u2+u3+u4))
221 vvvv=(h1*v1+h2*v2+h3*v3+h4*v4+(h1+h2+h3+h4)*(v1+v2+v3+v4))
225 f123=(z2*y3-z3*y2)*uuuu+(x2*z3-z2*x3)*vvvv
226 f134=(z3*y4-z4*y3)*uuuu+(x3*z4-z3*x4)*vvvv
227 f142=(z4*y2-z2*y4)*uuuu+(x4*z2-z4*x2)*vvvv
239 w1(ielem) = -f243*xsur120
240 w2(ielem) = -f134*xsur120
241 w3(ielem) = -f142*xsur120
242 w4(ielem) = -f123*xsur120
256 ielem2 = mod(ielem-1,nelem2) + 1
280 ip=(min(i1,i2,i3,i4)-1)/npoin2 +1
284 z1=dble((i1-1)/npoin2+1-ip)
285 z2=dble((i2-1)/npoin2+1-ip)-z1
286 z3=dble((i3-1)/npoin2+1-ip)-z1
287 z4=dble((i4-1)/npoin2+1-ip)-z1
291 u1 = u(i1)+f(i1)*h(ielem2+(1-1)*nelem2)
292 u2 = u(i2)+f(i2)*h(ielem2+(1-1)*nelem2)
293 u3 = u(i3)+f(i3)*h(ielem2+(1-1)*nelem2)
294 u4 = u(i4)+f(i4)*h(ielem2+(1-1)*nelem2)
295 v1 = v(i1)+f(i1)*h(ielem2+(2-1)*nelem2)
296 v2 = v(i2)+f(i2)*h(ielem2+(2-1)*nelem2)
297 v3 = v(i3)+f(i3)*h(ielem2+(2-1)*nelem2)
298 v4 = v(i4)+f(i4)*h(ielem2+(2-1)*nelem2)
302 i12d=mod(i1-1,npoin2)+1
303 i22d=mod(i2-1,npoin2)+1
304 i32d=mod(i3-1,npoin2)+1
305 i42d=mod(i4-1,npoin2)+1
311 h1=z(ip*npoin2+i12d)-z((ip-1)*npoin2+i12d)
312 h2=z(ip*npoin2+i22d)-z((ip-1)*npoin2+i22d)
313 h3=z(ip*npoin2+i32d)-z((ip-1)*npoin2+i32d)
314 h4=z(ip*npoin2+i42d)-z((ip-1)*npoin2+i42d)
336 uuuu=(h1*u1+h2*u2+h3*u3+h4*u4+(h1+h2+h3+h4)
338 vvvv=(h1*v1+h2*v2+h3*v3+h4*v4+(h1+h2+h3+h4)
343 f123=(z2*y3-z3*y2)*uuuu+(x2*z3-z2*x3)*vvvv
344 f134=(z3*y4-z4*y3)*uuuu+(x3*z4-z3*x4)*vvvv
345 f142=(z4*y2-z2*y4)*uuuu+(x4*z2-z4*x2)*vvvv
357 w1(ielem) = -f243*xsur120
358 w2(ielem) = -f134*xsur120
359 w3(ielem) = -f142*xsur120
360 w4(ielem) = -f123*xsur120
376 WRITE(
lu,102) ielmu,su%NAME
377 102
FORMAT(1x,
'VC04TT (BIEF) :',/,
378 & 1x,
'DISCRETISATION OF U ET V : ',1i6,
' NOT IMPLEMENTED',/,
379 & 1x,
'REAL NAME OF U : ',a6)
387 ELSEIF(formul(14:16).EQ.
'TOT')
THEN 389 IF(ielmw.NE.31.AND.ielmw.NE.51)
THEN 391 302
FORMAT(1x,
'VC04TT (BIEF) :',/,
392 & 1x,.NE..NE.
'UNEXPECTED CASE (IELMW31 AND 51)')
416 uuuu=u(i1)+u(i2)+u(i3)+u(i4)
417 vvvv=v(i1)+v(i2)+v(i3)+v(i4)
418 wwww=w(i1)+w(i2)+w(i3)+w(i4)
420 f123=(z2*y3-z3*y2)*uuuu+(x2*z3-z2*x3)*vvvv+(x3*y2-x2*y3)*wwww
421 f134=(z3*y4-z4*y3)*uuuu+(x3*z4-z3*x4)*vvvv+(x4*y3-x3*y4)*wwww
422 f142=(z4*y2-z2*y4)*uuuu+(x4*z2-z4*x2)*vvvv+(x2*y4-x4*y2)*wwww
425 w1(ielem) = -f243*xsur24
426 w2(ielem) = -f134*xsur24
427 w3(ielem) = -f142*xsur24
428 w4(ielem) = -f123*xsur24
489 202
FORMAT(1x,
'VC04TT (BIEF):',/,
490 & 1x,
'HOR OR VER LACKING AT THE END OF THE FORMULA : ',a16)
subroutine vc04tt(XMUL, SU, SV, SW, U, V, W, F, H, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, FORMUL, SPECAD, NPOIN2, NELEM2)