5 &(xmul,sf,su,sv,f,u,v,xel,yel,
6 & ikle1,ikle2,ikle3,ikle4,ikle5,ikle6,nelem,nelmax,
7 & w1,w2,w3,w4,w5,w6,formul)
75 INTEGER,
INTENT(IN) :: NELEM,NELMAX
76 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax*3),YEL(nelmax*3),XMUL
78 DOUBLE PRECISION,
INTENT(INOUT) :: W1(6*nelmax),W2(nelmax)
79 DOUBLE PRECISION,
INTENT(INOUT) :: W3(nelmax),W4(nelmax)
80 DOUBLE PRECISION,
INTENT(INOUT) :: W5(nelmax),W6(nelmax)
82 INTEGER,
INTENT(IN) :: IKLE1(6*nelmax),IKLE2(nelmax)
83 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
84 INTEGER,
INTENT(IN) :: IKLE5(nelmax),IKLE6(nelmax)
85 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
89 TYPE(bief_obj),
INTENT(IN) :: SF,SU,SV
90 DOUBLE PRECISION,
INTENT(IN) :: F(*),U(*),V(*)
94 INTEGER IELEM,IELMF,IELMU,IELMV
96 DOUBLE PRECISION K1,K2,K3
100 DOUBLE PRECISION X2,Y2,X3,Y3,F1,F2,F3,F4,F5,F6
101 DOUBLE PRECISION U1,U2,U3,U4,U5,U6,V1,V2,V3,V4,V5,V6
102 DOUBLE PRECISION ANS1,SUR6
103 DOUBLE PRECISION PHIT,USUR2,VSUR2,XSU90,XSU360,XSU630,XSU2520
104 DOUBLE PRECISION L12,L13,L21,L23,L31,L32,BETAN1,BETAN2,BETAN3
113 xsu2520= xmul/2520.d0
123 IF(ielmf.EQ.13.AND.ielmu.EQ.13.AND.ielmv.EQ.13)
THEN 125 IF(formul(14:16).EQ.
'PSI')
THEN 131 x2 = xel(ielem+nelmax)
132 x3 = xel(ielem+2*nelmax)
133 y2 = yel(ielem+nelmax)
134 y3 = yel(ielem+2*nelmax)
147 usur2 = (u1+u2+u3)*sur6
148 vsur2 = (v1+v2+v3)*sur6
150 k1 = usur2 * (y2-y3) - vsur2 * (x2-x3)
151 k2 = usur2 * (y3 ) - vsur2 * (x3 )
152 k3 = usur2 * ( -y2) - vsur2 * ( -x2)
154 l12 = max( min(k1,-k2) , 0.d0 )
155 l13 = max( min(k1,-k3) , 0.d0 )
156 l21 = max( min(k2,-k1) , 0.d0 )
157 l23 = max( min(k2,-k3) , 0.d0 )
158 l31 = max( min(k3,-k1) , 0.d0 )
159 l32 = max( min(k3,-k2) , 0.d0 )
161 betan1 = l12*(f1-f2) + l13*(f1-f3)
162 betan2 = l21*(f2-f1) + l23*(f2-f3)
163 betan3 = l31*(f3-f1) + l32*(f3-f2)
165 phit = betan1 + betan2 + betan3
167 IF(phit.GT.0.d0)
THEN 168 w1(ielem) = xmul * max( min( betan1, phit),0.d0 )
169 w2(ielem) = xmul * max( min( betan2, phit),0.d0 )
170 w3(ielem) = xmul * max( min( betan3, phit),0.d0 )
172 w1(ielem) = - xmul * max( min(-betan1,-phit),0.d0 )
173 w2(ielem) = - xmul * max( min(-betan2,-phit),0.d0 )
174 w3(ielem) = - xmul * max( min(-betan3,-phit),0.d0 )
176 w4(ielem) = (w1(ielem)+ w2(ielem))/2.d0
177 w5(ielem) = (w2(ielem)+ w3(ielem))/2.d0
178 w6(ielem) = (w3(ielem)+ w1(ielem))/2.d0
188 x2 = xel(ielem+nelmax)
189 x3 = xel(ielem+2*nelmax)
190 y2 = yel(ielem+nelmax)
191 y3 = yel(ielem+2*nelmax)
208 f2 = f(ikle2(ielem)) - f1
209 f3 = f(ikle3(ielem)) - f1
210 f4 = f(ikle4(ielem)) - f1
211 f5 = f(ikle5(ielem)) - f1
212 f6 = f(ikle6(ielem)) - f1
214 ans1 =-20.d0*y2*f3*u5-64.d0*x2*f6*v4+16.d0*y2*f4*u6+
215 & 16.d0*x3*f6*v4+4.d0*y2*f5*u3-32.d0*y3*f4*u5-16.d0*x2*f4*v6-
216 & 16.d0*y2*f3*u4+32.d0*x3*f4*v5-32.d0*x2*f4*v4-
217 & 24.d0*y2*f4*u1+24.d0*y2*f5*u1-80.d0*y3*f4*u4-
218 & 24.d0*x2*f5*v1+16.d0*x2*f3*v4-9.d0*x3*f2*v2+
219 & 80.d0*x3*f4*v4-16.d0*y3*f6*u4+9.d0*x2*f3*v3+
220 & 4.d0*y3*f6*u2-48.d0*x2*f4*v5-32.d0*y3*f6*u6-
221 & 32.d0*y2*f5*u4+32.d0*y3*f2*u4-16.d0*y2*f5*u6+
222 & 11.d0*x3*f2*v3+24.d0*y3*f6*u1+16.d0*x2*f5*v6-
223 & 64.d0*y3*f4*u6-48.d0*y3*f6*u5+4.d0*x2*f4*v3-
224 & 48.d0*x3*f5*v5-18.d0*x3*f2*v1+16.d0*y3*f2*u6+
225 & 32.d0*y2*f4*u4+20.d0*y3*f4*u3+11.d0*y2*f3*u2+
226 & 20.d0*y3*f2*u5-4.d0*x3*f6*v2+32.d0*x2*f5*v4-11.d0*x2*f3*v2-
227 & 32.d0*x3*f2*v4-9.d0*y2*f3*u3+96.d0*y2*f6*u1+9.d0*y3*f2*u2-
228 & 24.d0*x3*f6*v1+32.d0*y3*f5*u6-24.d0*y3*f5*u1+
229 & 48.d0*y2*f4*u5+96.d0*x3*f4*v1-48.d0*y2*f5*u5+
230 & 48.d0*x2*f5*v5-32.d0*x3*f5*v6-20.d0*x3*f2*v5+4.d0*x3*f5*v2+
231 & 64.d0*x3*f4*v6-16.d0*x2*f4*v2+18.d0*x2*f3*v1+
232 & 24.d0*x3*f5*v1-96.d0*x2*f6*v1+32.d0*x3*f6*v6-
233 & 11.d0*y3*f2*u3-4.d0*x2*f5*v3+20.d0*x2*f3*v5+16.d0*y3*f5*u3
234 w1(ielem) =( -16.d0*y3*f6*u3-20.d0*x3*f4*v3-16.d0*x3*f5*v3-
235 & 16.d0*y2*f5*u2+16.d0*y2*f4*u2+16.d0*x2*f5*v2-
236 & 20.d0*y2*f6*u2+32.d0*y2*f6*u5+20.d0*x2*f6*v2+
237 & 80.d0*y2*f6*u6-96.d0*y3*f4*u1-80.d0*x2*f6*v6-
238 & 32.d0*x2*f6*v5-18.d0*y2*f3*u1-4.d0*y2*f4*u3+
239 & 32.d0*x2*f3*v6+16.d0*x3*f6*v3-32.d0*y2*f3*u6-
240 & 16.d0*x3*f2*v6-4.d0*y3*f5*u2+24.d0*x2*f4*v1+
241 & 64.d0*y2*f6*u4+16.d0*y3*f5*u4+48.d0*y3*f5*u5+
242 & 48.d0*x3*f6*v5+18.d0*y3*f2*u1-16.d0*x3*f5*v4+
245 ans1 = 32.d0*y2*f3*u5-16.d0*x2*f6*v4-16.d0*y2*f4*u6-16.d0*x3*f6*v4
246 &+16.d0*y2*f5*u3-64.d0*y3*f4*u5+16.d0*x2*f4*v6+16.d0*y2*f3*u4
247 &+64.d0*x3*f4*v5-48.d0*x2*f4*v4-16.d0*y2*f4*u1+16.d0*y2*f5*u1
248 &-80.d0*y3*f4*u4-96.d0*y3*f4*u2-16.d0*x2*f5*v1-16.d0*x2*f3*v4
249 &-78.d0*x3*f2*v2+80.d0*x3*f4*v4+16.d0*y3*f6*u4-9.d0*x2*f3*v3
250 &-24.d0*y3*f6*u2-48.d0*x2*f4*v5+48.d0*y3*f6*u6-48.d0*y2*f5*u4
251 &+48.d0*y3*f2*u4+16.d0*y2*f5*u6+9.d0*x3*f2*v3-4.d0*y3*f6*u1
252 &-16.d0*x2*f5*v6-32.d0*y3*f4*u6+32.d0*y3*f6*u5+16.d0*x2*f4*v3
253 &+32.d0*x3*f5*v5+9.d0*x3*f2*v1+12.d0*y3*f2*u6-20.d0*y2*f6*u3
254 &+48.d0*y2*f4*u4+20.d0*y3*f4*u3+18.d0*y2*f3*u2+48.d0*y3*f2*u5
255 &+24.d0*x3*f6*v2+48.d0*x2*f5*v4-18.d0*x2*f3*v2-48.d0*x3*f2*v4
256 &+96.d0*x3*f4*v2+9.d0*y2*f3*u3+20.d0*y2*f6*u1+78.d0*y3*f2*u2
257 &+4.d0*x3*f6*v1-48.d0*y3*f5*u6+4.d0*y3*f5*u1+48.d0*y2*f4*u5
258 &-48.d0*y2*f5*u5+48.d0*x2*f5*v5+48.d0*x3*f5*v6-48.d0*x3*f2*v5
259 &-24.d0*x3*f5*v2+32.d0*x3*f4*v6-120.d0*x2*f4*v2+11.d0*x2*f3*v1
260 &-4.d0*x3*f5*v1-20.d0*x2*f6*v1-48.d0*x3*f6*v6-9.d0*y3*f2*u3
261 &-16.d0*x2*f5*v3-32.d0*x2*f3*v5-16.d0*y3*f5*u3+16.d0*y3*f6*u3
262 &-20.d0*x3*f4*v3+16.d0*x3*f5*v3-120.d0*y2*f5*u2+120.d0*y2*f4*u2
263 &+120.d0*x2*f5*v2-16.d0*y2*f6*u5+16.d0*x2*f6*v5
264 w2(ielem) = (-11.d0*y2*f3*u1-16.d0*y2*f4*u3-20.d0*x2*f3*v6-
265 & 16.d0*x3*f6*v3+20.d0*y2*f3*u6-12.d0*x3*f2*v6+
266 & 24.d0*y3*f5*u2+16.d0*x2*f4*v1+16.d0*y2*f6*u4-
267 & 16.d0*y3*f5*u4-32.d0*y3*f5*u5-32.d0*x3*f6*v5+
268 & 20.d0*x2*f6*v3-9.d0*y3*f2*u1+16.d0*x3*f5*v4+
271 ans1 = -48.d0*y2*f3*u5-32.d0*x2*f6*v4-16.d0*y2*f4*u6-
272 & 16.d0*x3*f6*v4-24.d0*y2*f5*u3+16.d0*y3*f4*u5+
273 & 16.d0*x2*f4*v6-12.d0*y2*f3*u4-16.d0*x3*f4*v5+
274 & 48.d0*x2*f4*v4+4.d0*y2*f4*u1-4.d0*y2*f5*u1+20.d0*y3*f4*u2+
275 & 4.d0*x2*f5*v1+12.d0*x2*f3*v4+9.d0*x3*f2*v2+16.d0*y3*f6*u4+
276 & 78.d0*x2*f3*v3+16.d0*y3*f6*u2+32.d0*x2*f4*v5-
277 & 48.d0*y3*f6*u6+48.d0*y2*f5*u4-20.d0*y3*f2*u4+
278 & 16.d0*y2*f5*u6+18.d0*x3*f2*v3+16.d0*y3*f6*u1-
279 & 16.d0*x2*f5*v6-16.d0*y3*f4*u6-48.d0*y3*f6*u5-
280 & 24.d0*x2*f4*v3-48.d0*x3*f5*v5-11.d0*x3*f2*v1-
281 & 16.d0*y3*f2*u6+96.d0*y2*f6*u3-48.d0*y2*f4*u4+
282 & 9.d0*y2*f3*u2-32.d0*y3*f2*u5-16.d0*x3*f6*v2-
283 & 48.d0*x2*f5*v4-9.d0*x2*f3*v2+20.d0*x3*f2*v4-
284 & 20.d0*x3*f4*v2-78.d0*y2*f3*u3-9.d0*y3*f2*u2-
285 & 16.d0*x3*f6*v1+48.d0*y3*f5*u6-16.d0*y3*f5*u1-
286 & 32.d0*y2*f4*u5+20.d0*x3*f4*v1+32.d0*y2*f5*u5-
287 & 32.d0*x2*f5*v5-48.d0*x3*f5*v6+32.d0*x3*f2*v5+
288 & 16.d0*x3*f5*v2+16.d0*x3*f4*v6+16.d0*x2*f4*v2-
289 & 9.d0*x2*f3*v1+16.d0*x3*f5*v1+48.d0*x3*f6*v6-
290 & 18.d0*y3*f2*u3+24.d0*x2*f5*v3+48.d0*x2*f3*v5
291 w3(ielem) =(120.d0*y3*f5*u3-120.d0*y3*f6*u3-120.d0*x3*f5*v3+
292 & 16.d0*y2*f5*u2-16.d0*y2*f4*u2-16.d0*x2*f5*v2-
293 & 20.d0*y2*f6*u2+64.d0*y2*f6*u5+20.d0*x2*f6*v2+
294 & 80.d0*y2*f6*u6-20.d0*y3*f4*u1-80.d0*x2*f6*v6-
295 & 64.d0*x2*f6*v5+9.d0*y2*f3*u1+24.d0*y2*f4*u3+
296 & 48.d0*x2*f3*v6+120.d0*x3*f6*v3-48.d0*y2*f3*u6+
297 & 16.d0*x3*f2*v6-16.d0*y3*f5*u2-4.d0*x2*f4*v1+
298 & 32.d0*y2*f6*u4-16.d0*y3*f5*u4+48.d0*y3*f5*u5+
299 & 48.d0*x3*f6*v5-96.d0*x2*f6*v3+11.d0*y3*f2*u1+
300 & 16.d0*x3*f5*v4+ans1) * xsu2520
302 ans1 = 4.d0*y2*f3*u5-64.d0*x2*f6*v4-32.d0*y2*f4*u6-
303 & 32.d0*x3*f6*v4-12.d0*y2*f5*u3+16.d0*y3*f4*u5+
304 & 32.d0*x2*f4*v6-24.d0*y2*f3*u4-16.d0*x3*f4*v5+
305 & 96.d0*x2*f4*v4+8.d0*y2*f4*u1-8.d0*y2*f5*u1+
306 & 20.d0*y3*f4*u2+8.d0*x2*f5*v1+24.d0*x2*f3*v4+
307 & 12.d0*x3*f2*v2+32.d0*y3*f6*u4-3.d0*x2*f3*v3-
308 & 4.d0*y3*f6*u2+48.d0*x2*f4*v5+32.d0*y3*f6*u6+
309 & 96.d0*y2*f5*u4-40.d0*y3*f2*u4+32.d0*y2*f5*u6-
310 & 5.d0*x3*f2*v3-4.d0*y3*f6*u1-32.d0*x2*f5*v6-16.d0*y3*f4*u6+
311 & 32.d0*y3*f6*u5-12.d0*x2*f4*v3+32.d0*x3*f5*v5-
312 & 8.d0*x3*f2*v1-4.d0*y3*f2*u6-8.d0*y2*f6*u3-96.d0*y2*f4*u4-
313 & 4.d0*y2*f3*u2-20.d0*y3*f2*u5+4.d0*x3*f6*v2-96.d0*x2*f5*v4+
314 & 4.d0*x2*f3*v2+40.d0*x3*f2*v4-20.d0*x3*f4*v2+3.d0*y2*f3*u3+
315 & 16.d0*y2*f6*u1-12.d0*y3*f2*u2+4.d0*x3*f6*v1-32.d0*y3*f5*u6+
316 & 4.d0*y3*f5*u1-48.d0*y2*f4*u5+20.d0*x3*f4*v1+48.d0*y2*f5*u5-
317 & 48.d0*x2*f5*v5+32.d0*x3*f5*v6+20.d0*x3*f2*v5-4.d0*x3*f5*v2+
318 & 16.d0*x3*f4*v6+12.d0*x2*f4*v2+4.d0*x2*f3*v1-4.d0*x3*f5*v1-
319 & 16.d0*x2*f6*v1-32.d0*x3*f6*v6+5.d0*y3*f2*u3+12.d0*x2*f5*v3-
320 & 4.d0*x2*f3*v5+4.d0*y3*f5*u3-4.d0*y3*f6*u3-4.d0*x3*f5*v3+
321 & 12.d0*y2*f5*u2-12.d0*y2*f4*u2-12.d0*x2*f5*v2-4.d0*y2*f6*u2
322 w4(ielem) = (4.d0*x2*f6*v2+16.d0*y2*f6*u6-20.d0*y3*f4*u1-
323 & 16.d0*x2*f6*v6-4.d0*y2*f3*u1+12.d0*y2*f4*u3-
324 & 4.d0*x2*f3*v6+4.d0*x3*f6*v3+4.d0*y2*f3*u6+
325 & 4.d0*x3*f2*v6+4.d0*y3*f5*u2-8.d0*x2*f4*v1+
326 & 64.d0*y2*f6*u4-32.d0*y3*f5*u4-32.d0*y3*f5*u5-
327 & 32.d0*x3*f6*v5+8.d0*x2*f6*v3+8.d0*y3*f2*u1+
328 & 32.d0*x3*f5*v4+ ans1) * (-xsu630)
330 ans1 = -40.d0*y2*f3*u5+32.d0*y2*f4*u6+32.d0*x3*f6*v4+
331 & 8.d0*y2*f5*u3-64.d0*y3*f4*u5-32.d0*x2*f4*v6-4.d0*y2*f3*u4+
332 & 64.d0*x3*f4*v5-48.d0*x2*f4*v4-12.d0*y2*f4*u1+
333 & 12.d0*y2*f5*u1-16.d0*y3*f4*u4-16.d0*y3*f4*u2-
334 & 12.d0*x2*f5*v1+4.d0*x2*f3*v4-12.d0*x3*f2*v2+
335 & 16.d0*x3*f4*v4-32.d0*y3*f6*u4+12.d0*x2*f3*v3+
336 & 8.d0*y3*f6*u2-96.d0*x2*f4*v5-48.d0*y3*f6*u6-
337 & 48.d0*y2*f5*u4+20.d0*y3*f2*u4-32.d0*y2*f5*u6+
338 & 8.d0*x3*f2*v3+12.d0*y3*f6*u1+32.d0*x2*f5*v6-
339 & 96.d0*y3*f6*u5+8.d0*x2*f4*v3-96.d0*x3*f5*v5+
340 & 5.d0*x3*f2*v1+4.d0*y3*f2*u6+16.d0*y2*f6*u3+48.d0*y2*f4*u4+
341 & 4.d0*y3*f4*u3+8.d0*y2*f3*u2+40.d0*y3*f2*u5-
342 & 8.d0*x3*f6*v2+48.d0*x2*f5*v4-8.d0*x2*f3*v2-
343 & 20.d0*x3*f2*v4+16.d0*x3*f4*v2-12.d0*y2*f3*u3-
344 & 8.d0*y2*f6*u1+12.d0*y3*f2*u2-12.d0*x3*f6*v1+
345 & 48.d0*y3*f5*u6-12.d0*y3*f5*u1+96.d0*y2*f4*u5-
346 & 8.d0*x3*f4*v1-96.d0*y2*f5*u5+96.d0*x2*f5*v5-
347 & 48.d0*x3*f5*v6-40.d0*x3*f2*v5+8.d0*x3*f5*v2-
348 & 12.d0*x2*f4*v2-5.d0*x2*f3*v1+12.d0*x3*f5*v1+
349 & 8.d0*x2*f6*v1+48.d0*x3*f6*v6-8.d0*y3*f2*u3-8.d0*x2*f5*v3
350 w5(ielem) = (40.d0*x2*f3*v5+12.d0*y3*f5*u3-12.d0*y3*f6*u3-
351 & 4.d0*x3*f4*v3-12.d0*x3*f5*v3-12.d0*y2*f5*u2+
352 & 12.d0*y2*f4*u2+12.d0*x2*f5*v2-4.d0*y2*f6*u2+
353 & 64.d0*y2*f6*u5+4.d0*x2*f6*v2+16.d0*y2*f6*u6+
354 & 8.d0*y3*f4*u1-16.d0*x2*f6*v6-64.d0*x2*f6*v5+
355 & 5.d0*y2*f3*u1-8.d0*y2*f4*u3+20.d0*x2*f3*v6+
356 & 12.d0*x3*f6*v3-20.d0*y2*f3*u6-4.d0*x3*f2*v6-
357 & 8.d0*y3*f5*u2+12.d0*x2*f4*v1+32.d0*y3*f5*u4+
358 & 96.d0*y3*f5*u5+96.d0*x3*f6*v5-16.d0*x2*f6*v3-
359 & 5.d0*y3*f2*u1-32.d0*x3*f5*v4+ ans1) * xsu630
361 ans1 = 20.d0*y2*f3*u5-16.d0*x2*f6*v4-32.d0*y2*f4*u6-
362 & 32.d0*x3*f6*v4-4.d0*y2*f5*u3+32.d0*x2*f4*v6+4.d0*y2*f3*u4+
363 & 32.d0*x2*f4*v4+4.d0*y2*f4*u1-4.d0*y2*f5*u1-16.d0*y3*f4*u4+
364 & 8.d0*y3*f4*u2+4.d0*x2*f5*v1-4.d0*x2*f3*v4+3.d0*x3*f2*v2+
365 & 16.d0*x3*f4*v4+32.d0*y3*f6*u4-12.d0*x2*f3*v3-
366 & 12.d0*y3*f6*u2+32.d0*x2*f4*v5+96.d0*y3*f6*u6+
367 & 32.d0*y2*f5*u4-4.d0*y3*f2*u4+32.d0*y2*f5*u6-
368 & 4.d0*x3*f2*v3-8.d0*y3*f6*u1-32.d0*x2*f5*v6-64.d0*y3*f4*u6+
369 & 48.d0*y3*f6*u5-4.d0*x2*f4*v3+48.d0*x3*f5*v5-4.d0*x3*f2*v1+
370 & 24.d0*y3*f2*u6-20.d0*y2*f6*u3-32.d0*y2*f4*u4+4.d0*y3*f4*u3-
371 & 5.d0*y2*f3*u2-4.d0*y3*f2*u5+12.d0*x3*f6*v2-32.d0*x2*f5*v4+
372 & 5.d0*x2*f3*v2+4.d0*x3*f2*v4-8.d0*x3*f4*v2+12.d0*y2*f3*u3+
373 & 20.d0*y2*f6*u1-3.d0*y3*f2*u2+8.d0*x3*f6*v1-96.d0*y3*f5*u6+
374 & 8.d0*y3*f5*u1-32.d0*y2*f4*u5+16.d0*x3*f4*v1+32.d0*y2*f5*u5-
375 & 32.d0*x2*f5*v5+96.d0*x3*f5*v6+4.d0*x3*f2*v5-12.d0*x3*f5*v2+
376 & 64.d0*x3*f4*v6-4.d0*x2*f4*v2+8.d0*x2*f3*v1-8.d0*x3*f5*v1-
377 & 20.d0*x2*f6*v1-96.d0*x3*f6*v6+4.d0*y3*f2*u3+4.d0*x2*f5*v3-
378 & 20.d0*x2*f3*v5-12.d0*y3*f5*u3+12.d0*y3*f6*u3-4.d0*x3*f4*v3+
379 & 12.d0*x3*f5*v3-4.d0*y2*f5*u2+4.d0*y2*f4*u2+4.d0*x2*f5*v2-
380 & 16.d0*y2*f6*u5-16.d0*y3*f4*u1+16.d0*x2*f6*v5-8.d0*y2*f3*u1
381 w6(ielem) = (4.d0*y2*f4*u3-40.d0*x2*f3*v6-12.d0*x3*f6*v3+
382 & 40.d0*y2*f3*u6-24.d0*x3*f2*v6+12.d0*y3*f5*u2-
383 & 4.d0*x2*f4*v1+16.d0*y2*f6*u4-32.d0*y3*f5*u4-
384 & 48.d0*y3*f5*u5-48.d0*x3*f6*v5+20.d0*x2*f6*v3+
385 & 4.d0*y3*f2*u1+32.d0*x3*f5*v4+ans1) * (-xsu630)
393 ELSEIF(ielmf.EQ.13.AND.ielmu.EQ.11.AND.ielmv.EQ.11)
THEN 395 IF(formul(14:16).EQ.
'PSI')
THEN 401 x2 = xel(ielem+nelmax)
402 x3 = xel(ielem+2*nelmax)
403 y2 = yel(ielem+nelmax)
404 y3 = yel(ielem+2*nelmax)
417 usur2 = (u1+u2+u3)*sur6
418 vsur2 = (v1+v2+v3)*sur6
420 k1 = usur2 * (y2-y3) - vsur2 * (x2-x3)
421 k2 = usur2 * (y3 ) - vsur2 * (x3 )
422 k3 = usur2 * ( -y2) - vsur2 * ( -x2)
424 l12 = max( min(k1,-k2) , 0.d0 )
425 l13 = max( min(k1,-k3) , 0.d0 )
426 l21 = max( min(k2,-k1) , 0.d0 )
427 l23 = max( min(k2,-k3) , 0.d0 )
428 l31 = max( min(k3,-k1) , 0.d0 )
429 l32 = max( min(k3,-k2) , 0.d0 )
431 betan1 = l12*(f1-f2) + l13*(f1-f3)
432 betan2 = l21*(f2-f1) + l23*(f2-f3)
433 betan3 = l31*(f3-f1) + l32*(f3-f2)
435 phit = betan1 + betan2 + betan3
437 IF(phit.GT.0.d0)
THEN 438 w1(ielem) = xmul * max( min( betan1, phit),0.d0 )
439 w2(ielem) = xmul * max( min( betan2, phit),0.d0 )
440 w3(ielem) = xmul * max( min( betan3, phit),0.d0 )
442 w1(ielem) = - xmul * max( min(-betan1,-phit),0.d0 )
443 w2(ielem) = - xmul * max( min(-betan2,-phit),0.d0 )
444 w3(ielem) = - xmul * max( min(-betan3,-phit),0.d0 )
446 w4(ielem) = (w1(ielem)+ w2(ielem))/2.d0
447 w5(ielem) = (w2(ielem)+ w3(ielem))/2.d0
448 w6(ielem) = (w3(ielem)+ w1(ielem))/2.d0
458 x2 = xel(ielem+nelmax)
459 x3 = xel(ielem+2*nelmax)
460 y2 = yel(ielem+nelmax)
461 y3 = yel(ielem+2*nelmax)
471 f2 = f(ikle2(ielem)) - f1
472 f3 = f(ikle3(ielem)) - f1
473 f4 = f(ikle4(ielem)) - f1
474 f5 = f(ikle5(ielem)) - f1
475 f6 = f(ikle6(ielem)) - f1
477 w1(ielem) = (-4.d0*x3*f6*v2-4.d0*y3*f5*u2-4.d0*y2*f6*u2-
478 & 8.d0*y2*f4*u2-4.d0*x2*f5*v3-4.d0*y2*f4*u3+
479 & 8.d0*y3*f6*u3-x2*f3*v2+4.d0*x3*f5*v2+4.d0*y2*f5*u3+
480 & 4.d0*y3*f6*u2+8.d0*x3*f5*v3+4.d0*x2*f4*v3-
481 & 6.d0*y3*f2*u1+24.d0*x2*f6*v1+y2*f3*u2+
482 & 6.d0*y2*f3*u1+8.d0*x2*f4*v2-8.d0*x2*f5*v2+
483 & 8.d0*y3*f4*u2-24.d0*x3*f4*v1+8.d0*y2*f5*u2-
484 & 5.d0*y3*f2*u2-8.d0*x3*f4*v2-24.d0*y2*f6*u1+
485 & 6.d0*x3*f2*v1-6.d0*x2*f3*v1-y3*f2*u3+5.d0*y2*f3*u3-
486 & 8.d0*y2*f6*u3+8.d0*x2*f6*v3+4.d0*x2*f6*v2-
487 & 4.d0*x3*f4*v3-8.d0*x3*f6*v3-5.d0*x2*f3*v3+
488 & 24.d0*y3*f4*u1+4.d0*y3*f4*u3+5.d0*x3*f2*v2-
489 & 8.d0*y3*f5*u3+x3*f2*v3) * xsu360
491 w2(ielem)= (-24.d0*y2*f4*u2-8.d0*y3*f6*u3+6.d0*x2*f3*v2-
492 & 4.d0*y3*f6*u1-8.d0*x3*f5*v3+4.d0*x3*f6*v1-
493 & 3.d0*y3*f2*u1+4.d0*x2*f6*v1-6.d0*y2*f3*u2-y2*f3*u1+
494 & 4.d0*y3*f5*u1+24.d0*x2*f4*v2-24.d0*x2*f5*v2+
495 & 24.d0*y3*f4*u2-8.d0*x3*f4*v1+24.d0*y2*f5*u2-
496 & 18.d0*y3*f2*u2-24.d0*x3*f4*v2-4.d0*y2*f6*u1+
497 & 3.d0*x3*f2*v1+x2*f3*v1-3.d0*y3*f2*u3-5.d0*y2*f3*u3-
498 & 4.d0*x3*f5*v1+4.d0*y2*f6*u3-4.d0*x2*f6*v3-
499 & 4.d0*x3*f4*v3+8.d0*x3*f6*v3+5.d0*x2*f3*v3+
500 & 8.d0*y3*f4*u1+4.d0*y3*f4*u3+18.d0*x3*f2*v2+
501 & 8.d0*y3*f5*u3+3.d0*x3*f2*v3) * (-xsu360)
503 w3(ielem)= (4.d0*x2*f5*v1-4.d0*y2*f6*u2-4.d0*y2*f5*u1+
504 & 8.d0*y2*f4*u2+24.d0*y3*f6*u3-3.d0*x2*f3*v2+
505 & 24.d0*x3*f5*v3+y3*f2*u1+8.d0*x2*f6*v1+4.d0*y2*f4*u1+
506 & 3.d0*y2*f3*u2+3.d0*y2*f3*u1-4.d0*x2*f4*v1-
507 & 8.d0*x2*f4*v2+8.d0*x2*f5*v2-4.d0*y3*f4*u2-
508 & 4.d0*x3*f4*v1-8.d0*y2*f5*u2+5.d0*y3*f2*u2+
509 & 4.d0*x3*f4*v2-8.d0*y2*f6*u1-x3*f2*v1-3.d0*x2*f3*v1+
510 & 6.d0*y3*f2*u3+18.d0*y2*f3*u3-24.d0*y2*f6*u3+
511 & 24.d0*x2*f6*v3+4.d0*x2*f6*v2-24.d0*x3*f6*v3-
512 & 18.d0*x2*f3*v3+4.d0*y3*f4*u1-5.d0*x3*f2*v2-
513 & 24.d0*y3*f5*u3-6.d0*x3*f2*v3)*(-xsu360)
515 w4(ielem) = (4.d0*x3*f6*v2+8.d0*x2*f5*v1+4.d0*y3*f5*u2-
516 & 4.d0*y2*f6*u2-8.d0*y2*f5*u1+12.d0*y2*f4*u2+
517 & 4.d0*x2*f5*v3+4.d0*y2*f4*u3-4.d0*y3*f6*u3-
518 & 2.d0*x2*f3*v2-4.d0*x3*f5*v2-4.d0*y3*f6*u1-
519 & 4.d0*y2*f5*u3-4.d0*y3*f6*u2-4.d0*x3*f5*v3+
520 & 4.d0*x3*f6*v1-4.d0*x2*f4*v3+2.d0*y3*f2*u1+
521 & 8.d0*x2*f6*v1+8.d0*y2*f4*u1+2.d0*y2*f3*u2+
522 & 2.d0*y2*f3*u1+4.d0*y3*f5*u1-8.d0*x2*f4*v1-
523 & 12.d0*x2*f4*v2+12.d0*x2*f5*v2-4.d0*y3*f4*u2-
524 & 4.d0*x3*f4*v1-12.d0*y2*f5*u2+6.d0*y3*f2*u2+
525 & 4.d0*x3*f4*v2-8.d0*y2*f6*u1-2.d0*x3*f2*v1-
526 & 2.d0*x2*f3*v1+y3*f2*u3-y2*f3*u3-4.d0*x3*f5*v1+
527 & 4.d0*x2*f6*v2+4.d0*x3*f6*v3+x2*f3*v3+4.d0*y3*f4*u1-
528 & 6.d0*x3*f2*v2+4.d0*y3*f5*u3-x3*f2*v3)*xsu90
530 w5(ielem) = (8.d0*x3*f6*v2+4.d0*x2*f5*v1+8.d0*y3*f5*u2+
531 & 4.d0*y2*f6*u2-4.d0*y2*f5*u1+12.d0*y2*f4*u2+
532 & 8.d0*x2*f5*v3+8.d0*y2*f4*u3-12.d0*y3*f6*u3+
533 & 2.d0*x2*f3*v2-8.d0*x3*f5*v2-4.d0*y3*f6*u1-
534 & 8.d0*y2*f5*u3-8.d0*y3*f6*u2-12.d0*x3*f5*v3+
535 & 4.d0*x3*f6*v1-8.d0*x2*f4*v3+y3*f2*u1+4.d0*y2*f4*u1-
536 & 2.d0*y2*f3*u2-y2*f3*u1+4.d0*y3*f5*u1-4.d0*x2*f4*v1-
537 & 12.d0*x2*f4*v2+12.d0*x2*f5*v2-8.d0*y3*f4*u2-
538 & 12.d0*y2*f5*u2+6.d0*y3*f2*u2+8.d0*x3*f4*v2-x3*f2*v1+
539 & x2*f3*v1+2.d0*y3*f2*u3-6.d0*y2*f3*u3-4.d0*x3*f5*v1+
540 & 8.d0*y2*f6*u3-8.d0*x2*f6*v3-4.d0*x2*f6*v2+
541 & 4.d0*x3*f4*v3+12.d0*x3*f6*v3+6.d0*x2*f3*v3-
542 & 4.d0*y3*f4*u3-6.d0*x3*f2*v2+12.d0*y3*f5*u3-
543 & 2.d0*x3*f2*v3) * xsu90
544 w6(ielem) = (4.d0*x3*f6*v2+4.d0*x2*f5*v1+4.d0*y3*f5*u2-
545 & 4.d0*y2*f5*u1+4.d0*y2*f4*u2+4.d0*x2*f5*v3+
546 & 4.d0*y2*f4*u3-12.d0*y3*f6*u3+x2*f3*v2-
547 & 4.d0*x3*f5*v2-8.d0*y3*f6*u1-4.d0*y2*f5*u3-
548 & 4.d0*y3*f6*u2-12.d0*x3*f5*v3+8.d0*x3*f6*v1-
549 & 4.d0*x2*f4*v3-2.d0*y3*f2*u1+4.d0*x2*f6*v1+
550 & 4.d0*y2*f4*u1-y2*f3*u2-2.d0*y2*f3*u1+8.d0*y3*f5*u1-
551 & 4.d0*x2*f4*v1-4.d0*x2*f4*v2+4.d0*x2*f5*v2-
552 & 8.d0*x3*f4*v1-4.d0*y2*f5*u2+y3*f2*u2-
553 & 4.d0*y2*f6*u1+2.d0*x3*f2*v1+2.d0*x2*f3*v1-
554 & 2.d0*y3*f2*u3-6.d0*y2*f3*u3-8.d0*x3*f5*v1+
555 & 4.d0*y2*f6*u3-4.d0*x2*f6*v3-4.d0*x3*f4*v3+
556 & 12.d0*x3*f6*v3+6.d0*x2*f3*v3+8.d0*y3*f4*u1+
557 & 4.d0*y3*f4*u3-x3*f2*v2+12.d0*y3*f5*u3+2.d0*x3*f2*v3)
570 WRITE(
lu,101) ielmf,sf%NAME
571 WRITE(
lu,201) ielmu,su%NAME
573 101
FORMAT(1x,
'VC08CC (BIEF) :',/,
574 & 1x,
'DISCRETIZATION OF F:',1i6,
575 & 1x,
'REAL NAME: ',a6)
576 201
FORMAT(1x,
'DISCRETIZATION OF U:',1i6,
577 & 1x,
'REAL NAME: ',a6)
578 301
FORMAT(1x,
'CASE NOT IMPLEMENTED')
subroutine vc08cc(XMUL, SF, SU, SV, F, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, FORMUL)