32 4 NC2, NC3, RX1G, RX2G,
33 5 RY1G, RY2G, RZ1G, RZ2G,
40#include "implicit_f.inc"
54 INTEGER,
INTENT(IN) :: NEL
55 INTEGER NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),PID(MVSIZ)
57 . R(3,*), GEO(NPROPG,*),
58 . OFFG(*),OFF(*),AL(MVSIZ),EXX(MVSIZ),EXY(MVSIZ),EXZ(),
59 . KXX(),KYY(MVSIZ),KZZ(MVSIZ),RX1G(MVSIZ),RX2G(MVSIZ),
60 . RY1G(MVSIZ),RY2G(MVSIZ),RZ1G(MVSIZ),RZ2G(MVSIZ),
61 . (MVSIZ),RX2(MVSIZ),RY1(MVSIZ),RY2(MVSIZ),RZ1(),RZ2(MVSIZ),
62 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),e2y(mvsiz),
63 . e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz)
67 INTEGER I, IG, IRX, IR1Y, IR1Z,
70 . RXAV(MVSIZ), RYAV(MVSIZ), RZAV(),EXX00(MVSIZ), EXY00(MVSIZ),
71 . EXZ00(MVSIZ), EXY0(MVSIZ), EXZ0(MVSIZ),RZ10(MVSIZ),
72 . RY10(MVSIZ), RZ20(MVSIZ), RY20(MVSIZ), EXX00PHI,EXY00PHI,
73 . EXZ00PHI, EXY0PHI, EXZ0PHI, RX10PHI, RY10PHI, RZ10PHI,
74 . RX20PHI, RY20PHI, RZ20PHI,OFF_L,DT05
77 rx1(i)=e1x(i)*rx1g(i)+e1y(i)*ry1g(i)+e1z(i)*rz1g(i)
78 ry1(i)=e2x(i)*rx1g(i)+e2y(i)*ry1g(i)+e2z(i)*rz1g(i)
79 rz1(i)=e3x(i)*rx1g(i)+e3y(i)*ry1g(i)+e3z(i)*rz1g(i)
80 rx2(i)=e1x(i)*rx2g(i)+e1y(i)*ry2g(i)+e1z(i)*rz2g(i)
81 ry2(i)=e2x(i)*rx2g(i)+e2y(i)*ry2g(i)+e2z(i)*rz2g(i)
82 rz2(i)=e3x(i)*rx2g(i)+e3y(i)*ry2g(i)+e3z(i)*rz2g(i)
88 IF (impl_s > 0 .AND. ismdisp > 0) dt05=zero
91 rxav(i)= half*dt05*(rx1(i)+rx2(i))
98 exx(i)=exx(i)-(exy0(i)*exy00(i)+exz0(i)*exz00(i))
99 exy(i)=exy(i)+exz0(i)*exx00(i)
100 exz(i)=exz(i)+exy0(i)*exx00(i)
105 rx1(i)=rx1(i)-exy0(i)*ry10(i)-exz0(i)*rz10(i)
106 ry1(i)=ry1(i)-rxav(i)*(rz10(i)-exy(i))
107 rz1(i)=rz1(i)+rxav(i)*(ry10(i)+exz(i))
108 rx2(i)=rx2(i)-exy0(i)*ry20(i)-exz0(i)*rz20(i)
109 ry2(i)=ry2(i)-rxav(i)*(rz20(i)-exy(i))
110 rz2(i)=rz2(i)+rxav(i)*(ry20(i)+exz(i))
117 irx =nint(geo(7 ,ig))
118 ir1y=nint(geo(8 ,ig))
119 ir1z=nint(geo(9 ,ig))
120 ir2y=nint(geo(10,ig))
121 ir2z=nint(geo(11,ig))
122 iry =
min(1,ir1y+ir2y)
123 irz =
min(1,ir1z+ir2z)
134 + -(one -ir1y)*(three_half*exz(i)+half*ry2(i))
136 + -(one -ir2y)*(three_half*exz(i)+half*ry1(i))
138 + +(one-ir1z)*(three_half*exy(i)-half*rz2(i))
140 + +(one -ir2z)*(three_half*exy(i)-half*rz1(i))
144 kxx(i)=(rx2(i)-rx1(i))/al(i)
145 kyy(i)=(ry2(i)-ry1(i))/al(i)
146 kzz(i)=(rz2(i)-rz1(i))/al(i)
150 rxav(i)=rx1(i)+rx2(i)
151 rzav(i)=rz1(i)+rz2(i)
152 ryav(i)=ry1(i)+ry2(i)
156 exz(i)=exz(i) + half*ryav(i)
157 exy(i)=exy(i) - half*rzav(i)
164 off(i) =
min(one,abs(offg(i)))
165 off(i) =
max(zero,off(i))
166 off_l =
min(off_l,offg
168 IF (off_l < zero)
THEN
170 IF (offg(i) < zero)
THEN
subroutine pcurv3(r, geo, offg, off, exx, exy, exz, kxx, kyy, kzz, al, nc1, nc2, nc3, rx1g, rx2g, ry1g, ry2g, rz1g, rz2g, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, pid, nel)