47#include "implicit_f.inc"
60 INTEGER,
INTENT(IN) :: NEL
61 INTEGER,
INTENT(IN) :: JHBE
62 INTEGER,
INTENT(IN) :: JCVT
63 INTEGER,
INTENT(IN) :: ISROT
65 . VX1(*), VX2(*), VX3(*), VX4(*),
66 . VX5(*), VX6(*), VX7(*), (*),
67 . VY1(*), VY2(*), VY3(*), VY4(*),
68 . VY5(*), VY6(*), VY7(*), VY8(*),
69 . VZ1(*), VZ2(*), VZ3(*), VZ4(*),
70 . VZ5(*), VZ6(*), VZ7(*), VZ8(*),
71 . PX1(*), PX2(*), PX3(*), PX4(*),
72 . PY1(*), PY2(*), PY3(*), PY4(*),
73 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
74 . DXX(*), DXY(*), DXZ(*),
75 . dyx(*), dyy(*), dyz(*),
76 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
77 . wxx(*), wyy(*), wzz(*), dd(*)
79 . vxr(*),vyr(*),vzr(*)
85 . VX17(MVSIZ), VY17(MVSIZ), VZ17(MVSIZ),
86 . (MVSIZ), VY28(MVSIZ), VZ28(MVSIZ),
87 . VX35(MVSIZ), VY35(MVSIZ), VZ35(MVSIZ),
88 . VX46(MVSIZ), VY46(MVSIZ), VZ46(MVSIZ),
91 . PXX2,PYY2,PZZ2,PXX2P,PYY2P,PZZ2P
100 vy17(i)=vy1(i)-vy7(i)
101 vy28(i)=vy2(i)-vy8(i)
102 vy35(i)=vy3(i)-vy5(i)
103 vy46(i)=vy4(i)-vy6(i)
104 vz17(i)=vz1(i)-vz7(i)
105 vz28(i)=vz2(i)-vz8(i)
106 vz35(i)=vz3(i)-vz5(i)
107 vz46(i)=vz4(i)-vz6(i)
111 dxx(i)=px1(i)*vx17(i)+px2(i)*vx28(i)+
112 . px3(i)*vx35(i)+px4(i)*vx46(i)
113 dyy(i)=py1(i)*vy17(i)+py2(i)*vy28(i)+
114 . py3(i)*vy35(i)+py4(i)*vy46(i)
115 dzz(i)=pz1(i)*vz17(i)+pz2(i)*vz28(i)+
116 . pz3(i)*vz35(i)+pz4(i)*vz46(i)
117 dxy(i)=py1(i)*vx17(i)+py2(i)*vx28(i)+
118 . py3(i)*vx35(i)+py4(i)*vx46(i)
119 dxz(i)=pz1(i)*vx17(i)+pz2(i)*vx28(i)+
120 . pz3(i)*vx35(i)+pz4(i)*vx46(i)
121 dyx(i)=px1(i)*vy17(i)+px2(i)*vy28(i)+
122 . px3(i)*vy35(i)+px4(i)*vy46(i)
123 dyz(i)=pz1(i)*vy17(i)+pz2(i)*vy28(i)+
124 . pz3(i)*vy35(i)+pz4(i)*vy46(i)
125 dzx(i)=px1(i)*vz17(i)+px2(i)*vz28(i)+
126 . px3(i)*vz35(i)+px4(i)*vz46(i)
127 dzy(i)=py1(i)*vz17(i)+py2(i)*vz28(i)+
128 . py3(i)*vz35(i)+py4(i)*vz46(i)
133 IF (iscau>0)dt1d2=dt1
136 IF (impl_s==0.OR.idyna > 0)
THEN
139 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
141 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
143 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
144 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
145 dxy(i) = dxy(i) - aaa
146 dyx(i) = dyx(i) - aaa
147 d4(i) = dxy(i)+dyx(i)
148 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
149 dyz(i) = dyz(i) - aaa
150 dzy(i) = dzy(i) - aaa
151 d5(i) = dyz(i)+dzy(i)
152 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
153 dxz(i) = dxz(i) - aaa
154 dzx(i) = dzx(i) - aaa
155 d6(i) = dxz(i)+dzx(i)
161 ELSEIF (iline>0.AND.iscau==0)
THEN
163 d4(i) = dxy(i)+dyx(i)
164 d5(i) = dyz(i)+dzy(i)
165 d6(i) = dxz(i)+dzx(i)
173 d4(i) = dxy(i)+dyx(i)
174 . -dt1d*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
175 d5(i) = dyz(i)+dzy(i)
176 . -dt1d*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
177 d6(i) = dxz(i)+dzx(i)
178 . -dt1d*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz
180 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
182 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
184 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
191 ELSEIF (jhbe >= 2)
THEN
194 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
196 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
198 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
199 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
201 dyx(i) = dyx(i) - aaa
202 d4(i) = dxy(i)+dyx(i)
203 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
204 dyz(i) = dyz(i) - aaa
205 dzy(i) = dzy(i) - aaa
206 d5(i) = dyz(i)+dzy(i)
207 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
208 dxz(i) = dxz(i) - aaa
209 dzx(i) = dzx(i) - aaa
210 d6(i) = dxz(i)+dzx(i)
211 pxx2 = px1(i)*px1(i)+px2(i)*px2(i)
212 . +px3(i)*px3(i)+px4(i)*px4(i)
213 pyy2 = py1(i)*py1(i)+py2(i)*py2(i)
214 . +py3(i)*py3(i)+py4(i)*py4(i)
215 pzz2 = pz1(i)*pz1(i)+pz2(i)*pz2(i)
216 . +pz3(i)*pz3(i)+pz4(i)*pz4(i)
217 wzz(i)=dt1*(pyy2*dyx(i)-pxx2*dxy(i))/(pxx2+pyy2)
218 wxx(i)=dt1*(pzz2*dzy(i)-pyy2*dyz(i))/(pyy2+pzz2)
219 wyy(i)=dt1*(pxx2*dxz(i)-pzz2*dzx(i))/(pzz2+pxx2)
224 d4(i) = dxy(i)+dyx(i)
225 d5(i) = dyz(i)+dzy(i)
226 d6(i) = dxz(i)+dzx(i)
230 wzz(i)=dt1d2*(dyx(i)-dxy(i))
231 wyy(i)=dt1d2*(dxz(i)-dzx(i))
232 wxx(i)=dt1d2*(dzy(i)-dyz(i))
239 dxy(i)=dxy(i) + vzr(i)
240 dyx(i)=dyx(i) - vzr(i)
241 dyz(i)=dyz(i) + vxr(i)
242 dzy(i)=dzy(i) - vxr(i)
243 dzx(i)=dzx(i) + vyr(i)
244 dxz(i)=dxz(i) - vyr(i)
249 wxx(i)=aaa*wxx(i) + bbb*vxr(i)
250 wyy(i)=aaa*wyy(i) + bbb*vyr(i)
251 wzz(i)=aaa*wzz(i) + bbb*vzr(i)
256 dd(i) = - dxx(i)- dyy(i) - dzz(i)
subroutine fdefo3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, vxr, vyr, vzr, dd, nel, jhbe, jcvt, isrot)