31 1 OFF, DET, NGL, DELTAX,
41 B NEL, PM, VOLDP, ISMSTR,
46#include "implicit_f.inc"
60 INTEGER,
INTENT(IN) :: JLAG
61 INTEGER,
INTENT(IN) :: ISMSTR
62 INTEGER,
INTENT(IN) :: IFORMDT
63 INTEGER NEL, MXT(MVSIZ)
65 . X1(*), X2(*), X3(*), X4(*),
66 . Y1(*), Y2(*), Y3(*), Y4(*),
67 . Z1(*), Z2(*), Z3(*), Z4(*), SAV(NEL,9),VOLDP(NEL)
70 . OFF(*), DET(*), DELTAX(*), PM(NPROPM,*),
71 . PX1(*), PX2(*), PX3(*), PX4(*),
72 . py1(*), py2(*), py3(*), py4(*),
73 . pz1(*), pz2(*), pz3(*), pz4(*),offg(*),
74 . rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),tx(*), ty(*), tz(*)
79 INTEGER NNEGA,INDEX(MVSIZ)
81 . x41, y41, z41, x42, y42, z42, x43, y43, z43,b1dp,c1dp,d1dp
83 . a1, a2, a3, a4, d, areamx2,
84 . b1(mvsiz), b2(mvsiz), b3(mvsiz), b4(mvsiz),
85 . c1(mvsiz), c2(mvsiz), c3(mvsiz), c4(mvsiz),
86 . d1(mvsiz), d2(mvsiz), d3(mvsiz), d4(mvsiz),
87 . pxx, pyy, pzz, pxy, pyz, pxz, gfac, aa, bb, p, ld
112 b1dp = y43*z42 - y42*z43
114 b2(i) = y41*z43 - y43*z41
115 b3(i) = y42*z41 - y41*z42
116 b4(i) = -(b1(i) + b2(i) + b3(i))
118 c1dp = z43*x42 - z42*x43
120 c2(i) = z41*x43 - z43*x41
121 c3(i) = z42*x41 - z41*x42
122 c4(i) = -(c1(i) + c2(i) + c3(i))
124 d1dp = x43*y42 - x42*y43
126 d2(i) = x41*y43 - x43*y41
127 d3(i) = x42*y41 - x41*y42
128 d4(i) = -(d1(i) + d2(i) + d3(i))
130 voldp(i) = (x41*b1dp + y41*c1dp + z41*d1dp)*one_over_6
137 1 off, det, ngl, offg,
138 2 nnega, index, nel, ismstr,
141 IF (ismstr==10.OR.ismstr==12)
THEN
142#include "vectorize.inc"
159#include "vectorize.inc"
176#include "vectorize.inc"
200 b1dp = y43*z42 - y42*z43
202 b2(i) = y41*z43 - y43*z41
203 b3(i) = y42*z41 - y41*z42
204 b4(i) = -(b1(i) + b2(i) + b3(i))
206 c1dp = z43*x42 - z42*x43
208 c2(i) = z41*x43 - z43*x41
209 c3(i) = z42*x41 - z41*x42
210 c4(i) = -(c1(i) + c2(i) + c3(i))
212 d1dp = x43*y42 - x42*y43
214 d2(i) = x41*y43 - x43*y41
215 d3(i) = x42*y41 - x41*y42
216 d4(i) = -(d1(i) + d2(i) + d3(i))
218 voldp(i) = (x41*b1dp + y41*c1dp + z41*d1dp)*one_over_6
243 d =
max(px1(i)*px1(i)+py1(i)*py1(i)+pz1(i)*pz1(i),
244 . px2(i)*px2(i)+py2(i)*py2(i)+pz2(i)*pz2(i),
245 . px3(i)*px3(i)+py3(i)*py3(i)+pz3(i)*pz3(i),
246 . px4(i)*px4(i)+py4(i)*py4(i)+pz4(i)*pz4(i))
247 deltax(i) = one / sqrt(d)
250 ELSEIF(iformdt==0)
THEN
252 d = px1(i)*px1(i)+py1(i)*py1(i)+pz1(i)*pz1(i)
253 . + px2(i)*px2(i)+py2(i)*py2(i)+pz2(i)*pz2(i)
254 . + px3(i)*px3(i)+py3(i)*py3(i)+pz3(i)*pz3(i)
255 . + px4(i)*px4(i)+py4(i)*py4(i)+pz4(i)*pz4(i)
256 deltax(i) = one / sqrt(d)
259 ELSEIF(iformdt==1)
THEN
262 ld =two*sqrt(
max(one-gfac,zero))+one
264 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
265 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
266 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
267 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
268 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
269 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
272 bb = (pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz**2-pyz**2)
274 d = two*sqrt(third*
max(-p,zero))-third*aa
278 deltax(i) = one / sqrt(d)
281 ELSEIF(iformdt==2)
THEN
285 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
286 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
287 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
288 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
289 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
290 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
293 bb = gfac*(pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz**2-pyz**2)
295 d = two*sqrt(third*
max(-p,zero))-third*aa
297 deltax(i) = one / sqrt(d)
304 1000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB',i10/)
305 2000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
subroutine s4deri3(off, det, ngl, deltax, mxt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, rx, ry, rz, sx, sy, sz, tx, ty, tz, sav, offg, nel, pm, voldp, ismstr, iformdt, jlag)