32 . IXTG,ISH3N,PX1 ,PY1 ,PY2 ,
33 . EXX ,EYY ,EXY ,EYZ ,EZX ,
35 . E1X ,E1Y ,E1Z ,E2X ,
36 . E2Y ,E2Z ,E3X ,E3Y ,E3Z )
37 use element_mod ,
only : nixtg
41#include "implicit_f.inc"
54 INTEGER JFT, JLT,IXTG(NIXTG,*), ISH3N
55 my_real VL1(MVSIZ,3),VL2(MVSIZ,3),VL3(MVSIZ,3),
56 . EXX(MVSIZ), EYY(MVSIZ), EXY(MVSIZ), EYZ(MVSIZ),EZX(MVSIZ),
57 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ),
58 . E2X(MVSIZ), E2Y(MVSIZ), E2Z(MVSIZ),
59 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
60 . px1(mvsiz), py1(mvsiz), py2(mvsiz), vx13(mvsiz), vx23(mvsiz),
67 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ),
68 . VY1(MVSIZ), VY2(MVSIZ), VY3(MVSIZ),
69 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ),
70 . vx12(mvsiz), vy13(mvsiz), vy23(mvsiz),
71 . vz12(mvsiz), vz13(mvsiz), vz23(mvsiz)
72 my_real dt1v4b,tmp11,tmp22,vx10,vx20,vx30,dt1v4,tmp1,tmp2
76 vx1(i)=e1x(i)*vl1(i,1)+e1y(i)*vl1(i,2)+e1z(i)*vl1(i,3)
77 vx2(i)=e1x(i)*vl2(i,1)+e1y(i)*vl2(i,2)+e1z(i)*vl2(i,3)
78 vx3(i)=e1x(i)*vl3(i,1)+e1y(i)*vl3(i,2)+e1z(i)*vl3(i,3)
80 vy3(i)=e2x(i)*vl3(i,1)+e2y(i)*vl3(i,2)+e2z(i)*vl3(i,3)
81 vy2(i)=e2x(i)*vl2(i,1)+e2y(i)*vl2(i,2)+e2z(i)*vl2(i,3)
82 vy1(i)=e2x(i)*vl1(i,1)+e2y(i)*vl1(i,2)+e2z(i)*vl1(i,3)
84 vz1(i)=e3x(i)*vl1(i,1)+e3y(i)*vl1(i,2)+e3z(i)*vl1(i,3)
85 vz2(i)=e3x(i)*vl2(i,1)+e3y(i)*vl2(i,2)+e3z(i)*vl2(i,3)
86 vz3(i)=e3x(i)*vl3(i,1)+e3y(i)*vl3(i,2)+e3z(i)*vl3(i,3)
90 IF (impl_s > 0 .AND. imp_lr == 0 ) dt1v4=zero
92 IF(ish3n < 2) dt1v4b=zero
95 vz12(i)=vz1(i) - vz2(i)
96 vz13(i)=vz1(i) - vz3(i)
97 vz23(i)=vz2(i) - vz3(i)
99 tmp1 = dt1v4 * vz12(i) / (py1(i)+py2(i))
100 tmp2 = (py1(i) * vz1(i) + py2(i) * vz2(i)) / (py1(i)+py2(i))
101 tmp2 = dt1v4 * (tmp2 - vz3(i)) / px1(i)
102 vy12(i)=vy1(i) - vy2(i)
103 tmp11 = dt1v4b * vy12(i) / (py1(i)+py2(i))
104 tmp22 = (py1(i) * vx1(i) + py2(i) * vx2(i)) / (py1(i)+py2(i))
105 tmp22 = dt1v4b * (tmp22 - vx3(i)) / px1(i)
109 vx1(i) = vx1(i) - vz1(i) * tmp1 - vy1(i) * tmp11
110 vx2(i) = vx2(i) - vz2(i) * tmp1 - vy2(i) * tmp11
111 vx3(i) = vx3(i) - vz3(i) * tmp1 - vy3(i) * tmp11
112 vy1(i) = vy1(i) - vz1(i) * tmp2 - vx10 * tmp22
113 vy2(i) = vy2(i) - vz2(i) * tmp2 - vx20 * tmp22
114 vy3(i) = vy3(i) - vz3(i) * tmp2 - vx30 * tmp22
116 vx12(i)=vx1(i) - vx2(i)
117 vy12(i)=vy1(i) - vy2(i)
118 vx13(i)=vx1(i) - vx3(i)
119 vy13(i)=vy1(i) - vy3(i)
120 vx23(i)=vx2(i) - vx3(i)
121 vy23(i)=vy2(i) - vy3(i)
123 exx(i)=px1(i)*vx12(i)
124 eyy(i)=py1(i)*vy13(i) + py2(i)*vy23(i)
126 exy(i)=py1(i)*vx13(i) + py2(i)*vx23(i) + px1(i)*vy12(i)
127 eyz(i)=py1(i)*vz13(i) + py2(i)*vz23(i)
128 ezx(i)=px1(i)*vz12(i)
141 SUBROUTINE c3brz3(JFT ,JLT ,AREA ,X2 ,X3 ,
142 . Y3 ,BM0RZ,B0RZ ,BKRZ ,BERZ )
146#include "implicit_f.inc"
147#include "mvsiz_p.inc"
152 my_real AREA(*), X2(MVSIZ), X3(MVSIZ), Y3(MVSIZ),
153 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2)
175 CALL c3derirz(jft ,jlt ,area ,x2 ,x3 ,
176 . y2 ,y3 ,bm0rz,b0rz ,bkrz ,
187 SUBROUTINE c3defrz(JFT ,JLT ,RLZ ,BM0RZ ,B0RZ ,
188 1 BKRZ ,BERZ ,E3X ,E3Y ,E3Z ,
189 2 VRL1 ,VRL2 ,VRL3 ,EXX ,EYY ,
190 3 EXY ,PX1 ,PY1 ,PY2 ,WXY ,
191 4 AREA ,VX13 ,VX23 ,VY12 )
193#include "implicit_f.inc"
194#include "mvsiz_p.inc"
200 . AREA(*),RLZ(MVSIZ,3),VX13(MVSIZ), VX23(MVSIZ),VY12(MVSIZ),
201 . VRL1(MVSIZ,3), VRL2(MVSIZ,3), VRL3(MVSIZ,3),
202 . E3X(MVSIZ), E3Y(MVSIZ),E3Z(MVSIZ), EXX(*),EYY(*),EXY(*),
203 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2),WXY(*),
204 . PX1(*),PY1(*),PY2(*)
231 . BXV2,BYV1,A05,RZ13(MVSIZ), RZ23(MVSIZ)
234 rlz(i,1)=e3x(i)*vrl1(i,1)+e3y(i)*vrl1(i,2)+e3z(i)*vrl1(i,3)
235 rlz(i,2)=e3x(i)*vrl2(i,1)+e3y(i)*vrl2(i,2)+e3z(i)*vrl2(i,3)
236 rlz(i,3)=e3x(i)*vrl3(i,1)+e3y(i)*vrl3(i,2)+e3z(i)*vrl3(i,3)
237 rz13(i)=rlz(i,1)-rlz(i,3)
238 rz23(i)=rlz(i,2)-rlz(i,3)
244 exx(i)=exx(i)+bm0rz(i,1,1)*rz13(i)+bm0rz(i,1,2)*rz23(i)
245 eyy(i)=eyy(i)+bm0rz(i,2,1)*rz13(i)+bm0rz(i,2,2)*rz23(i)
246 exy(i)=exy(i)+bm0rz(i,3,1)*rz13(i)+bm0rz(i,3,2)*rz23(i)
250 byv1= py1(i)*vx13(i) + py2(i)*vx23(i)
253 wxy(i)=(-byv1+bxv2)*a05
267 2 Y2 ,Y3 ,BMRZ ,B0RZ ,BKRZ ,
270#include "implicit_f.inc"
271#include "mvsiz_p.inc"
277 . X2(MVSIZ),X3(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),AREA(*)
279 . bmrz(mvsiz,3,2),b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2)
302 . X2L(MVSIZ),X3L(MVSIZ),Y2L(MVSIZ),Y3L(MVSIZ),BM0RZ(MVSIZ,4,2),
303 . BMKRZ(MVSIZ,4,3),BMERZ(MVSIZ,4,3),Y31_2,Y21_2,X31_2,X21_2,
304 . Y21Y31,X21X31,X21Y31,X31Y21,X21Y21,X31Y31
316 y21y31 = y2l(i)*y3l(i)
326 bm0rz(i,1,2) = y21y31
329 bmkrz(i,1,2) = -y21y31
331 bmkrz(i,1,1) = -bmkrz(i,1,2)-bmkrz(i,1,3)
333 bmerz(i,1,2) = -y31_2
334 bmerz(i,1,3) = -y21y31
335 bmerz(i,1,1) = -bmerz(i,1,2)-bmerz(i,1,3)
338 bm0rz(i,2,2) = x21x31
341 bmkrz(i,2,2) =-x21x31
343 bmkrz(i,2,1) = -bmkrz(i,2,2)-bmkrz(i,2,3)
345 bmerz(i,2,2) = -x31_2
346 bmerz(i,2,3) = x21x31
347 bmerz(i,2,1) = -bmerz(i,2,2)-bmerz(i,2,3)
349 bm0rz(i,3,1) = x31y21-x21y31
350 bm0rz(i,3,2) = -x31y21
353 bmkrz(i,3,2) = two*x31y21-x21y31
354 bmkrz(i,3,3) = -x21y21
355 bmkrz(i,3,1) = -bmkrz(i,3,2)-bmkrz(i,3,3)
357 bmerz(i,3,2) = x31y31
358 bmerz(i,3,3) = x31y21-two*x21y31
359 bmerz(i,3,1) = -bmerz(i,3,2)-bmerz(i,3,3)
361 bm0rz(i,4,1) = x21y31-x31y21
362 bm0rz(i,4,2) = -x21y31
365 bmkrz(i,4,2) = two*x21y31-x31y21
366 bmkrz(i,4,3) = -x21y21
367 bmkrz(i,4,1) = -bmkrz(i,4,2)-bmkrz(i,4,3)
369 bmerz(i,4,2) = x31y31
370 bmerz(i,4,3) = x21y31-two*x31y21
371 bmerz(i,4,1) = -bmerz(i,4,2)-bmerz(i,4,3)
391 b0rz(i,3)=-b0rz(i,1)-b0rz(i,2)
394 b0rz(i,1)=b0rz(i,1)-a2
395 bkrz(i,1)=bkrz(i,1)+a2
396 berz(i,1)=berz(i,1)+a2
397 bkrz(i,2)=bkrz(i,2)-a2
401 CALL c3bm0rz(jft ,jlt ,bmrz,bm0rz,bmkrz ,bmerz )
410 SUBROUTINE c3bm0rz(JFT ,JLT ,BMRZ ,BM0RZ,BMKRZ ,BMERZ )
412#include "implicit_f.inc"
413#include "mvsiz_p.inc"
419 . BMRZ(MVSIZ,3,2),BM0RZ(MVSIZ,4,2),BMKRZ(MVSIZ,4,3),
428 BMRZ(JFT:JLT,1:3,1:2)=zero
436 bmrz(i,1,j)=bm0rz(i,1,j)+scal*(bmkrz(i,1,j)+bmerz(i,1,j))
437 bmrz(i,2,j)=bm0rz(i,2,j)+scal*(bmkrz(i,2,j)+bmerz(i,2,j))
438 bmrz(i,3,j)=bm0rz(i,3,j)+scal*(bmkrz(i,3,j)+bmerz(i,3,j))
449 SUBROUTINE c3deft3(JFT,JLT,X2,Y2,X3,Y3,V21X,V21Y,V31X,V31Y,
450 2 BM0RZ,RZ13,RZ23,AREA,VDEF,IDRIL )
454#include "implicit_f.inc"
458#include "mvsiz_p.inc"
462 INTEGER JFT, JLT,IDRIL
464 . X2(*),Y2(*),X3(*),Y3(*),V21X(*),V21Y(*),V31X(*),V31Y(*),
465 . BM0RZ(MVSIZ,4,2),RZ13(*),RZ23(*),AREA(*),VDEF(MVSIZ,8)
472 . PX2(MVSIZ), PY2(MVSIZ), PX3(MVSIZ), PY3(MVSIZ) ,AREAI
476 areai=half/
max(em20,area(i))
483 vdef(i,1)=px2(i)*v21x(i)+px3(i)*v31x(i)
484 vdef(i,2)=py2(i)*v21y(i)+py3(i)*v31y(i)
485 vdef(i,3)=py2(i)*v21x(i)+py3(i)*v31x(i)
486 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)