32 1 OFF, DET, NGL, DELTAX,
46#include "implicit_f.inc"
56 INTEGER,
INTENT(IN) ::
57 INTEGER,
INTENT(IN) :: IFORMDT
60 . X1(*), X2(*), X3(*), X4(*),
61 . Y1(*), Y2(*), Y3(*), Y4(*),
62 . Z1(*), Z2(*), Z3(*), Z4(*),VOLDP(*)
64 . OFF(*),DET(*),DELTAX(*),
65 . PX1(*), PX2(*), PX3(*), PX4(*),
66 . PY1(*), (*), PY3(*), PY4(*),
67 . pz1(*), pz2(*), pz3(*), pz4(*),
68 . rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),tx(*), ty(*), tz(*),
79 . X41, Y41, Z41, X42, Y42, Z42, X43, Y43, Z43,C1DP,D1DP
81 . B1(MVSIZ), B2(MVSIZ), B3(MVSIZ), B4(MVSIZ),
82 . C1(MVSIZ), C2(MVSIZ), C3(MVSIZ), C4(),
83 . D1(MVSIZ), D2(MVSIZ), D3(MVSIZ), D4(MVSIZ),
85 . PXX, PYY, PZZ, PXY, PYZ, PXZ, GFAC, AA, BB, P, LD
110 b1dp = y43*z42 - y42*z43
112 b2(i) = y41*z43 - y43*z41
113 b3(i) = y42*z41 - y41*z42
114 b4(i) = -(b1(i) + b2(i) + b3(i))
116 c1dp = z43*x42 - z42*x43
118 c2(i) = z41*x43 - z43*x41
119 c3(i) = z42*x41 - z41*x42
120 c4(i) = -(c1(i) + c2(i) + c3(i))
122 d1dp = x43*y42 - x42*y43
124 d2(i) = x41*y43 - x43*y41
125 d3(i) = x42*y41 - x41*y42
126 d4(i) = -(d1(i) + d2(i) + d3(i))
128 voldp(i) = (x41*b1dp + y41*c1dp + z41*d1dp)*one_over_6
134 1 off, det, ngl, nel)
155 d =
max(px1(i)*px1(i)+py1(i)*py1(i)+pz1(i)*pz1(i),
156 . px2(i)*px2(i)+py2(i)*py2(i)+pz2(i)*pz2(i),
157 . px3(i)*px3(i)+py3(i)*py3(i)+pz3(i)*pz3(i),
158 . px4(i)*px4(i)+py4(i)*py4(i)+pz4(i)*pz4(i))
159 deltax(i) = one / sqrt(d)
163 ELSEIF(iformdt==0)
THEN
165 d = px1(i)*px1(i)+py1(i)*py1(i)+pz1(i)*pz1(i)
166 . + px2(i)*px2(i)+py2(i)*py2(i)+pz2(i)*pz2(i)
167 . + px3(i)*px3(i)+py3(i)*py3(i)+pz3(i)*pz3(i)
168 . + px4(i)*px4(i)+py4(i)*py4(i)+pz4(i)*pz4(i)
169 deltax(i) = one / sqrt(d)
172 ELSEIF(iformdt==1)
THEN
175 ld =two*sqrt(
max(one-gfac,zero))+one
177 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
178 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
179 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
180 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
181 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
182 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
185 bb = (pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz**2-pyz**2)
187 d=two*sqrt(third*
max(-p,zero))-third*aa
191 deltax(i) = one / sqrt(d)
194 ELSEIF(iformdt==2)
THEN
198 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
199 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
200 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
201 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
202 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
203 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
206 bb = gfac*(pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz
208 d = two*sqrt(third*
max(-p,zero))-third*aa
210 deltax(i) = one / sqrt(d)
subroutine s4derit3(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, pm, voldp, nel, iformdt)