32 1 OFF, DET, NGL, DELTAX,
46#include "implicit_f.inc"
56 INTEGER,
INTENT(IN) :: NEL
57 INTEGER,
INTENT(IN) ::
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(*), PY2(*), PY3(*), PY4(*),
67 . pz1(*), pz2(*), pz3(*), pz4(*),
68 . rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),tx(*), ty(*), tz(*),
79 . X41, Y41, , X42, Y42, Z42, X43, Y43, Z43,B1DP,C1DP,D1DP
81 . B1(MVSIZ), B2(MVSIZ), B3(MVSIZ), B4(MVSIZ),
82 . (MVSIZ), C2(MVSIZ), C3(MVSIZ), C4(MVSIZ),
83 . D1(MVSIZ), D2(MVSIZ), D3(MVSIZ), D4(MVSIZ),
84 . A1, A2, A3, A4, D, AREAMX2,
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==1)
THEN
166 ld =two*sqrt(
max(one-gfac,zero))+one
168 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
169 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
170 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
171 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
172 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
173 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
176 bb = (pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz**2-pyz**2)
178 d=two*sqrt(third*
max(-p,zero))-third*aa
182 deltax(i) = one / sqrt(d)
185 ELSEIF(iformdt==2)
THEN
189 pxx=px1(i)*px1(i)+px2(i)*px2(i)+px3(i)*px3(i)+px4(i)*px4(i)
190 pyy=py1(i)*py1(i)+py2(i)*py2(i)+py3(i)*py3(i)+py4(i)*py4(i)
191 pzz=pz1(i)*pz1(i)+pz2(i)*pz2(i)+pz3(i)*pz3(i)+pz4(i)*pz4(i)
192 pxy=px1(i)*py1(i)+px2(i)*py2(i)+px3(i)*py3(i)+px4(i)*py4(i)
193 pxz=px1(i)*pz1(i)+px2(i)*pz2(i)+px3(i)*pz3(i)+px4(i)*pz4(i)
194 pyz=py1(i)*pz1(i)+py2(i)*pz2(i)+py3(i)*pz3(i)+py4(i)*pz4(i)
197 bb = gfac*(pxx*pyy+pxx*pzz+pyy*pzz-pxy**2-pxz**2-pyz**2)
199 d = two*sqrt(third*
max(-p,zero))-third*aa
201 deltax(i) = one / sqrt(d)
208 1000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB',i10/)
209 2000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
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)
subroutine s4ke3(pm, geo, ixs, x, gbuf, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, isorth, iformdt)