5 &(xmul,sf,sg,sh,su,sv,f,g,h,u,v,
6 & xel,yel,ikle1,ikle2,ikle3,nelem,nelmax,w1,w2,w3,formul)
87 INTEGER,
INTENT(IN) :: NELEM,NELMAX
88 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
89 DOUBLE PRECISION,
INTENT(IN) :: XMUL
90 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,*),YEL(nelmax,*)
91 DOUBLE PRECISION,
INTENT(INOUT) :: W1(*),W2(*),W3(*)
95 TYPE(bief_obj),
INTENT(IN) :: SF,SH,SG,SU,SV
96 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*),H(*),U(*),V(*)
97 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
101 INTEGER IELEM,IELMU,IELMV,IELMF,IELMH,IELMG,I1,I2,I3
103 DOUBLE PRECISION X2,Y2,X3,Y3,Z1,Z2,Z3,ZX,ZY,DET
104 DOUBLE PRECISION H1,H2,H3,U1,U2,U3,V1,V2,V3
105 DOUBLE PRECISION H123,U123,V123,HU123,HV123
106 DOUBLE PRECISION XSUR24
110 xsur24 = xmul / 24.d0
122 IF(formul(1:8).EQ.
'HUGRADP ')
THEN 128 & .AND.(ielmu.EQ.11.OR.ielmu.EQ.12)
129 & .AND.(ielmv.EQ.11.OR.ielmv.EQ.12) )
THEN 155 hu123 = h1*u1+h2*u2+h3*u3
156 hv123 = h1*v1+h2*v2+h3*v3
158 w1(ielem) = ( (y2-y3)*(h123*u123+hu123)
159 & +(x3-x2)*(h123*v123+hv123) )*xsur24
160 w2(ielem) = ( y3 *(h123*u123+hu123)
161 & -x3 *(h123*v123+hv123) )*xsur24
162 w3(ielem) = ( -y2 *(h123*u123+hu123)
163 & +x2 *(h123*v123+hv123) )*xsur24
173 WRITE(
lu,101) ielmf,sf%NAME
174 WRITE(
lu,401) ielmu,su%NAME
175 WRITE(
lu,501) ielmv,sv%NAME
177 101
FORMAT(1x,
'VC19AA (BIEF) :',/,
178 & 1x,
'DISCRETIZATION OF F:',1i6,
179 & 1x,
'REAL NAME: ',a6)
180 201
FORMAT(1x,
'DISCRETIZATION OF G:',1i6,
181 & 1x,
'REAL NAME: ',a6)
182 301
FORMAT(1x,
'DISCRETIZATION OF H:',1i6,
183 & 1x,
'REAL NAME: ',a6)
184 401
FORMAT(1x,
'DISCRETIZATION OF U:',1i6,
185 & 1x,
'REAL NAME: ',a6)
186 501
FORMAT(1x,
'DISCRETIZATION OF V:',1i6,
187 & 1x,
'REAL NAME: ',a6)
188 601
FORMAT(1x,
'CASE NOT IMPLEMENTED')
196 ELSEIF(formul(1:8).EQ.
'HUGRADP2')
THEN 207 & .AND.(ielmu.EQ.11.OR.ielmu.EQ.12)
208 & .AND.(ielmv.EQ.11.OR.ielmv.EQ.12) )
THEN 225 z2=h(ielem+ nelmax)-z1
226 z3=h(ielem+2*nelmax)-z1
229 u1 = u(i1) + g(i1)*zx
230 u2 = u(i2) + g(i2)*zx
231 u3 = u(i3) + g(i3)*zx
232 v1 = v(i1) + g(i1)*zy
233 v2 = v(i2) + g(i2)*zy
234 v3 = v(i3) + g(i3)*zy
240 hu123 = h1*u1+h2*u2+h3*u3
241 hv123 = h1*v1+h2*v2+h3*v3
243 w1(ielem) = ( (y2-y3)*(h123*u123+hu123)
244 & +(x3-x2)*(h123*v123+hv123) )*xsur24
245 w2(ielem) = ( y3 *(h123*u123+hu123)
246 & -x3 *(h123*v123+hv123) )*xsur24
247 w3(ielem) = ( -y2 *(h123*u123+hu123)
248 & +x2 *(h123*v123+hv123) )*xsur24
257 & .AND.(ielmu.EQ.11.OR.ielmu.EQ.12)
258 & .AND.(ielmv.EQ.11.OR.ielmv.EQ.12) )
THEN 279 u1 = u(i1) + g(i1)*zx
280 u2 = u(i2) + g(i2)*zx
281 u3 = u(i3) + g(i3)*zx
282 v1 = v(i1) + g(i1)*zy
283 v2 = v(i2) + g(i2)*zy
284 v3 = v(i3) + g(i3)*zy
290 hu123 = h1*u1+h2*u2+h3*u3
291 hv123 = h1*v1+h2*v2+h3*v3
293 w1(ielem) = ( (y2-y3)*(h123*u123+hu123)
294 & +(x3-x2)*(h123*v123+hv123) )*xsur24
295 w2(ielem) = ( y3 *(h123*u123+hu123)
296 & -x3 *(h123*v123+hv123) )*xsur24
297 w3(ielem) = ( -y2 *(h123*u123+hu123)
298 & +x2 *(h123*v123+hv123) )*xsur24
308 WRITE(
lu,101) ielmf,sf%NAME
309 WRITE(
lu,201) ielmg,sg%NAME
310 WRITE(
lu,301) ielmh,sh%NAME
311 WRITE(
lu,401) ielmu,su%NAME
312 WRITE(
lu,401) ielmv,sv%NAME
321 ELSEIF(formul(1:8).EQ.
'HUGRADP3')
THEN 328 IF(ielmf.EQ.11.AND.ielmg.EQ.11.AND.ielmh.EQ.15)
THEN 345 z2=h(ielem+ nelmax)-z1
346 z3=h(ielem+2*nelmax)-z1
360 hu123 = h1*u1+h2*u2+h3*u3
361 hv123 = h1*v1+h2*v2+h3*v3
363 w1(ielem) = ( (y2-y3)*(h123*u123+hu123)
364 & +(x3-x2)*(h123*v123+hv123) )*xsur24
365 w2(ielem) = ( y3 *(h123*u123+hu123)
366 & -x3 *(h123*v123+hv123) )*xsur24
367 w3(ielem) = ( -y2 *(h123*u123+hu123)
368 & +x2 *(h123*v123+hv123) )*xsur24
374 & .AND.ielmh.EQ.11 )
THEN 408 hu123 = h1*u1+h2*u2+h3*u3
409 hv123 = h1*v1+h2*v2+h3*v3
411 w1(ielem) = ( (y2-y3)*(h123*u123+hu123)
412 & +(x3-x2)*(h123*v123+hv123) )*xsur24
413 w2(ielem) = ( y3 *(h123*u123+hu123)
414 & -x3 *(h123*v123+hv123) )*xsur24
415 w3(ielem) = ( -y2 *(h123*u123+hu123)
416 & +x2 *(h123*v123+hv123) )*xsur24
421 WRITE(
lu,101) ielmf,sf%NAME
422 WRITE(
lu,201) ielmg,sg%NAME
423 WRITE(
lu,301) ielmh,sh%NAME
433 WRITE(
lu,2000) formul
434 2000
FORMAT(1x,
'VC19AA (BIEF):',/,
435 & 1x,
'FORMULA: ',a16,
' UNEXPECTED')
subroutine vc19aa(XMUL, SF, SG, SH, SU, SV, F, G, H, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3, FORMUL)