30 . IXTG,ISH3N,PX1 ,PY1 ,PY2 ,
31 . EXX ,EYY ,EXY ,EYZ ,EZX ,
33 . E1X ,E1Y ,E1Z ,E2X ,
34 . E2Y ,E2Z ,E3X ,E3Y ,E3Z )
38#include "implicit_f.inc"
51 INTEGER JFT, JLT,IXTG(NIXTG,*), ISH3N
52 my_real VL1(MVSIZ,3),VL2(MVSIZ,3),VL3(MVSIZ,3),
53 . EXX(MVSIZ), EYY(MVSIZ), EXY(MVSIZ), EYZ(MVSIZ),EZX(MVSIZ),
54 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ),
55 . E2X(MVSIZ), E2Y(MVSIZ), E2Z(MVSIZ),
56 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
57 . px1(mvsiz), py1(mvsiz), py2(mvsiz), vx13(mvsiz), vx23(mvsiz),
62 INTEGER NC1, NC2, NC3, I, J
64 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ),
65 . VY1(MVSIZ), VY2(MVSIZ), VY3(MVSIZ),
66 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ),
67 . vx12(mvsiz), vy13(mvsiz), vy23(mvsiz),
68 . vz12(mvsiz), vz13(mvsiz), vz23(mvsiz)
69 my_real dt1v4b,tmp11,tmp22,vx10,vx20,vx30,dt1v4,tmp1,tmp2
73 vx1(i)=e1x(i)*vl1(i,1)+e1y(i)*vl1(i,2)+e1z(i)*vl1(i,3)
74 vx2(i)=e1x(i)*vl2(i,1)+e1y(i)*vl2(i,2)+e1z(i)*vl2(i,3)
75 vx3(i)=e1x(i)*vl3(i,1)+e1y(i)*vl3(i,2)+e1z(i)*vl3(i,3)
77 vy3(i)=e2x(i)*vl3(i,1)+e2y(i)*vl3(i,2)+e2z(i)*vl3(i,3)
78 vy2(i)=e2x(i)*vl2(i,1)+e2y(i)*vl2(i,2)+e2z(i)*vl2(i,3)
79 vy1(i)=e2x(i)*vl1(i,1)+e2y(i)*vl1(i,2)+e2z(i)*vl1(i,3)
81 vz1(i)=e3x(i)*vl1(i,1)+e3y(i)*vl1(i,2)+e3z(i)*vl1(i,3)
82 vz2(i)=e3x(i)*vl2(i,1)+e3y(i)*vl2(i,2)+e3z(i)*vl2(i,3)
83 vz3(i)=e3x(i)*vl3(i,1)+e3y(i)*vl3(i,2)+e3z(i)*vl3(i,3)
87 IF (impl_s > 0 .AND. imp_lr == 0 ) dt1v4=zero
89 IF(ish3n < 2) dt1v4b=zero
92 vz12(i)=vz1(i) - vz2(i)
93 vz13(i)=vz1(i) - vz3(i)
94 vz23(i)=vz2(i) - vz3(i)
96 tmp1 = dt1v4 * vz12(i) / (py1(i)+py2(i))
97 tmp2 = (py1(i) * vz1(i) + py2(i) * vz2(i)) / (py1(i)+py2(i))
98 tmp2 = dt1v4 * (tmp2 - vz3(i)) / px1(i)
99 vy12(i)=vy1(i) - vy2(i)
100 tmp11 = dt1v4b * vy12(i) / (py1(i)+py2(i))
101 tmp22 = (py1(i) * vx1(i) + py2(i) * vx2(i)) / (py1(i)+py2(i))
102 tmp22 = dt1v4b * (tmp22 - vx3(i)) / px1(i)
106 vx1(i) = vx1(i) - vz1(i) * tmp1 - vy1(i) * tmp11
107 vx2(i) = vx2(i) - vz2(i) * tmp1 - vy2(i) * tmp11
108 vx3(i) = vx3(i) - vz3(i) * tmp1 - vy3(i) * tmp11
109 vy1(i) = vy1(i) - vz1(i) * tmp2 - vx10 * tmp22
110 vy2(i) = vy2(i) - vz2(i) * tmp2 - vx20 * tmp22
111 vy3(i) = vy3(i) - vz3(i) * tmp2 - vx30 * tmp22
113 vx12(i)=vx1(i) - vx2(i)
114 vy12(i)=vy1(i) - vy2(i)
115 vx13(i)=vx1(i) - vx3(i)
116 vy13(i)=vy1(i) - vy3(i)
117 vx23(i)=vx2(i) - vx3(i)
118 vy23(i)=vy2(i) - vy3(i)
120 exx(i)=px1(i)*vx12(i)
121 eyy(i)=py1(i)*vy13(i) + py2(i)*vy23(i)
123 exy(i)=py1(i)*vx13(i) + py2(i)*vx23(i) + px1(i)*vy12(i)
124 eyz(i)=py1(i)*vz13(i) + py2(i)*vz23(i)
125 ezx(i)=px1(i)*vz12(i)
138 SUBROUTINE c3brz3(JFT ,JLT ,AREA ,X2 ,X3 ,
139 . Y3 ,BM0RZ,B0RZ ,BKRZ ,BERZ )
143#include "implicit_f.inc"
144#include "mvsiz_p.inc"
149 my_real AREA(*), X2(MVSIZ), X3(MVSIZ), Y3(MVSIZ),
150 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2)
173 CALL c3derirz(jft ,jlt ,area ,x2 ,x3 ,
174 . y2 ,y3 ,bm0rz,b0rz ,bkrz ,
185 SUBROUTINE c3defrz(JFT ,JLT ,RLZ ,BM0RZ ,B0RZ ,
186 1 BKRZ ,BERZ ,E3X ,E3Y ,E3Z ,
187 2 VRL1 ,VRL2 ,VRL3 ,EXX ,EYY ,
188 3 EXY ,PX1 ,PY1 ,PY2 ,WXY ,
189 4 AREA ,VX13 ,VX23 ,VY12 )
191#include "implicit_f.inc"
192#include "mvsiz_p.inc"
199(MVSIZ,3), VRL2(MVSIZ,3), VRL3(MVSIZ,3),
200 . E3X(MVSIZ), (MVSIZ),E3Z(MVSIZ), EXX(*),EYY(*),EXY(*),
201 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2),WXY(*),
202 . PX1(*),PY1(*),PY2(*)
232 rlz(i,1)=e3x(i)*vrl1(i,1)+e3y(i)*vrl1(i,2)+e3z(i)*vrl1(i,3)
233 rlz(i,2)=e3x(i)*vrl2(i,1)+e3y(i)*vrl2(i,2)+e3z(i)*vrl2(i,3)
234 rlz(i,3)=e3x(i)*vrl3(i,1)+e3y(i)*vrl3(i,2)+e3z(i)*vrl3(i,3)
235 rz13(i)=rlz(i,1)-rlz(i,3)
236 rz23(i)=rlz(i,2)-rlz(i,3)
242 exx(i)=exx(i)+bm0rz(i,1,1)*rz13(i)+bm0rz(i,1,2)*rz23(i)
243 eyy(i)=eyy(i)+bm0rz(i,2,1)*rz13(i)+bm0rz(i,2,2)*rz23(i)
244 exy(i)=exy(i)+bm0rz(i,3,1)*rz13(i)+bm0rz(i,3,2)*rz23(i)
248 byv1= py1(i)*vx13(i) + py2(i)*vx23(i)
251 wxy(i)=(-byv1+bxv2)*a05
265 2 Y2 ,Y3 ,BMRZ ,B0RZ ,BKRZ ,
268#include "implicit_f.inc"
269#include "mvsiz_p.inc"
275 . X2(MVSIZ),X3(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),AREA(*)
277 . bmrz(mvsiz,3,2),b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2)
299 . A2,BXV2,BYV1,A05,NXY,NYX,
300 . X2L(MVSIZ),X3L(MVSIZ),(MVSIZ),Y3L(MVSIZ),BM0RZ(MVSIZ,4,2),
301 . BMKRZ(MVSIZ,4,3),BMERZ(MVSIZ,4,3),Y31_2,Y21_2,X31_2,X21_2,
302 . Y21Y31,X21X31,X21Y31,X31Y21,X21Y21,X31Y31
314 y21y31 = y2l(i)*y3l(i)
324 bm0rz(i,1,2) = y21y31
327 bmkrz(i,1,2) = -y21y31
329 bmkrz(i,1,1) = -bmkrz(i,1,2)-bmkrz(i,1,3)
331 bmerz(i,1,2) = -y31_2
332 bmerz(i,1,3) = -y21y31
333 bmerz(i,1,1) = -bmerz(i,1,2)-bmerz(i,1,3)
336 bm0rz(i,2,2) = x21x31
339 bmkrz(i,2,2) =-x21x31
341 bmkrz(i,2,1) = -bmkrz(i,2,2)-bmkrz(i,2,3)
343 bmerz(i,2,2) = -x31_2
344 bmerz(i,2,3) = x21x31
345 bmerz(i,2,1) = -bmerz(i,2,2)-bmerz(i,2,3)
347 bm0rz(i,3,1) = x31y21-x21y31
348 bm0rz(i,3,2) = -x31y21
351 bmkrz(i,3,2) = two*x31y21-x21y31
352 bmkrz(i,3,3) = -x21y21
353 bmkrz(i,3,1) = -bmkrz(i,3,2)-bmkrz(i,3,3)
355 bmerz(i,3,2) = x31y31
356 bmerz(i,3,3) = x31y21-two*x21y31
357 bmerz(i,3,1) = -bmerz(i,3,2)-bmerz(i,3,3)
359 bm0rz(i,4,1) = x21y31-x31y21
360 bm0rz(i,4,2) = -x21y31
363 bmkrz(i,4,2) = two*x21y31-x31y21
364 bmkrz(i,4,3) = -x21y21
365 bmkrz(i,4,1) = -bmkrz(i,4,2)-bmkrz(i,4,3)
367 bmerz(i,4,2) = x31y31
368 bmerz(i,4,3) = x21y31-two*x31y21
369 bmerz(i,4,1) = -bmerz(i,4,2)-bmerz(i,4,3)
389 b0rz(i,3)=-b0rz(i,1)-b0rz(i,2)
392 b0rz(i,1)=b0rz(i,1)-a2
393 bkrz(i,1)=bkrz(i,1)+a2
394 berz(i,1)=berz(i,1)+a2
395 bkrz(i,2)=bkrz(i,2)-a2
399 CALL c3bm0rz(jft ,jlt ,bmrz,bm0rz,bmkrz ,bmerz )
408 SUBROUTINE c3bm0rz(JFT ,JLT ,BMRZ ,BM0RZ,BMKRZ ,BMERZ )
410#include "implicit_f.inc"
411#include "mvsiz_p.inc"
417 . BMRZ(MVSIZ,3,2),BM0RZ(MVSIZ,4,2),BMKRZ(MVSIZ,4,3),
426 BMRZ(JFT:JLT,1:3,1:2)=zero
434 bmrz(i,1,j)=bm0rz(i,1,j)+scal*(bmkrz(i,1,j)+bmerz(i,1,j))
435 bmrz(i,2,j)=bm0rz(i,2,j)+scal*(bmkrz(i,2,j)+bmerz(i,2,j))
436 bmrz(i,3,j)=bm0rz(i,3,j)+scal*(bmkrz(i,3,j)+bmerz(i,3,j))
447 SUBROUTINE c3deft3(JFT,JLT,X2,Y2,X3,Y3,V21X,V21Y,V31X,V31Y,
448 2 BM0RZ,RZ13,RZ23,AREA,VDEF,IDRIL )
452#include "implicit_f.inc"
456#include "mvsiz_p.inc"
460 INTEGER JFT, JLT,IDRIL
462 . X2(*),Y2(*),X3(*),Y3(*),V21X(*),V21Y(*),V31X(*),V31Y(*),
463 . BM0RZ(MVSIZ,4,2),RZ13(*),RZ23(*),AREA(*),VDEF(MVSIZ,8)
467 INTEGER NC1, NC2, NC3, I, J
470 . PX2(MVSIZ), PY2(MVSIZ), PX3(MVSIZ), PY3(MVSIZ) ,AREAI
474 areai=half/
max(em20,area(i))
481 vdef(i,1)=px2(i)*v21x(i)+px3(i)*v31x(i)
482 vdef(i,2)=py2(i)*v21y(i)+py3(i)*v31y(i)
483 vdef(i,3)=py2(i)*v21x(i)+py3(i)*v31x(i)
484 vdef(i,4)=px2(i)*v21y(i)+px3(i)*v31y(i)
subroutine c3defo3(jft, jlt, vl1, vl2, vl3, ixtg, ish3n, px1, py1, py2, exx, eyy, exy, eyz, ezx, vx13, vx23, vy12, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
subroutine c3defrz(jft, jlt, rlz, bm0rz, b0rz, bkrz, berz, e3x, e3y, e3z, vrl1, vrl2, vrl3, exx, eyy, exy, px1, py1, py2, wxy, area, vx13, vx23, vy12)