42 A PZ2, PZ3, PZ4, PX1H1,
43 B PX1H2, PX1H3, PX1H4, PX2H1,
44 C PX2H2, PX2H3, PX2H4, PX3H1,
45 D PX3H2, PX3H3, PX3H4, PX4H1,
46 E PX4H2, PX4H3, PX4H4, JAC1,
47 F JAC2, JAC3, JAC4, JAC5,
48 G JAC6, RX0, RY0, SX0,
49 H SY0, VZL, VOLG, SAV,
58#include "implicit_f.inc"
75 INTEGER,
INTENT(IN) ::
79 . X1(*), X2(*), X3(*), (*), X5(*), (*), X7(*), X8(*),
80 . Y1(*), Y2(*), Y3(*), Y4(*), Y5(*), Y6(*), Y7(*), Y8(*),
81 . Z1(*), Z2(*), Z3(*), Z4(*), Z5(*), Z6(*), Z7(*), Z8(*),
86 . PX1(*), PX2(*), PX3(*), PX4(*),
87 . PY1(*), PY2(*), PY3(*), PY4(*),
88 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
89 . PX1H1(*), PX1H2(*), PX1H3(*),PX1H4(*),
90 . PX2H1(*), PX2H2(*), PX2H3(*),PX2H4(*),
91 . PX3H1(*), PX3H2(*), PX3H3(*),PX3H4(*),
92 . PX4H1(*), PX4H2(*), PX4H3(*),PX4H4(*),
93 . jac1(*),jac2(*),jac3(*),
94 . jac4(*),jac5(*),jac6(*),
95 . rx0(*),ry0(*),sx0(*),sy0(*),vzl(*),volg(*),offg(*)
99 INTEGER :: I,J,NNEGA,INDEX(MVSIZ)
102 . dett , jac7(mvsiz), jac8(mvsiz) ,jac9(mvsiz),
103 . jaci1, jaci2, jaci3,
104 . jaci4, jaci5, jaci6,
105 . jaci7, jaci8, jaci9,
106 . x17(mvsiz) , x28(mvsiz) , x35(mvsiz) , x46(mvsiz),
107 . y17(mvsiz) , y28(mvsiz) , y35(mvsiz) , y46(mvsiz),
108 . z17(mvsiz) , z28(mvsiz) , z35(mvsiz) , z46(mvsiz),
109 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz),jac_19_37(mvsiz),
110 . jaci12, jaci45, jaci78,
111 . x_17_46 , x_28_35 ,
112 . y_17_46 , y_28_35 ,
113 . z_17_46 , z_28_35 ,
area(mvsiz) ,
115 . h1x(mvsiz),h1y(mvsiz),h2x(mvsiz),h2y(mvsiz),
116 . h1z(mvsiz),h2z(mvsiz),icor
138 jac3(i)=x17(i)+x28(i)-x35(i)-x46(i)
139 jac1(i)=y17(i)+y28(i)-y35(i)-y46(i)
140 jac2(i)=z17(i)+z28(i)-z35(i)-z46(i)
142 x_17_46=x17(i)+x46(i)
143 x_28_35=x28(i)+x35(i)
144 y_17_46=y17(i)+y46(i)
145 y_28_35=y28(i)+y35(i)
146 z_17_46=z17(i)+z46(i)
147 z_28_35=z28(i)+z35(i)
149 jac6(i)=x_17_46+x_28_35
150 jac4(i)=y_17_46+y_28_35
151 jac5(i)=z_17_46+z_28_35
153 jac9(i)=x_17_46-x_28_35
154 jac7(i)=y_17_46-y_28_35
155 jac8(i)=z_17_46-z_28_35
159 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
160 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
161 jac_19_37(i)=jac1(i)*jac9(i)-jac3(i)*jac7(i)
162 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
166 area(i) = one_over_64*jac_19_37(i)
167 det(i)=one_over_64*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
173 IF(off(i) ==zero)
THEN
176 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero)
177 . .OR.(
area(i)<=zero))
THEN
184 IF(det(i)<=volmin)
THEN
189 WRITE(istdo,2000) ngl(i)
190 WRITE(iout ,2000) ngl(i)
191#include "lockoff.inc"
192 ELSEIF(det(i)<=zero.OR.(
area(i)<=zero))
THEN
193 CALL ancmsg(msgid=166,anmode=aninfo,
200 ELSEIF(idtmin(1)==2)
THEN
203 IF(off(i) ==zero)
THEN
206 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero)
207 . .OR.(
area(i)<=zero))
THEN
214 . (det(i)<=volmin.OR.det(i)<=zero)
215 . .OR.(
area(i)<=zero))
THEN
220 WRITE(istdo,2000) ngl(i)
221 WRITE(iout ,2000) ngl(i)
222#include "lockoff.inc"
226 ELSEIF (ismstr /=4 )
THEN
229 IF(off(i) ==zero)
THEN
231 ELSEIF((det(i)<=volmin).OR.(
area(i)<=zero))
THEN
237 IF(off(i) == zero)
THEN
240 ELSEIF(offg(i) > one)
THEN
242 ELSEIF((det(i)<=volmin).OR.(
area(i)<=zero))
THEN
246 WRITE(istdo,3000) ngl(i)
247 WRITE(iout ,3000) ngl(i)
248#include "lockoff.inc"
252 CALL ancmsg(msgid=280,anmode=aninfo)
259 IF(off(i) ==zero)
THEN
262 ELSEIF(det(i)<=zero)
THEN
270 CALL ancmsg(msgid=166,anmode
280#include "vectorize.inc"
309 jac3(i)=x17(i)+x28(i)-x35(i)-x46(i)
310 jac1(i)=y17(i)+y28(i)-y35(i)-y46(i)
311 jac2(i)=z17(i)+z28(i)-z35(i)-z46(i)
313 x_17_46=x17(i)+x46(i)
314 x_28_35=x28(i)+x35(i)
315 y_17_46=y17(i)+y46(i)
316 y_28_35=y28(i)+y35(i)
317 z_17_46=z17(i)+z46(i)
318 z_28_35=z28(i)+z35(i)
320 jac6(i)=x_17_46+x_28_35
321 jac4(i)=y_17_46+y_28_35
322 jac5(i)=z_17_46+z_28_35
323 jac9(i)=x_17_46-x_28_35
324 jac7(i)=y_17_46-y_28_35
325 jac8(i)=z_17_46-z_28_35
327 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
328 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
329 jac_19_37(i)=jac1(i)*jac9(i)-jac3(i)*jac7(i)
330 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
332 area(i) = one_over_64*jac_19_37(i)
333 det(i)=one_over_64*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
340 dett=one_over_64/det(i)
341 jaci1=dett*jac_59_68(i)
342 jaci4=dett*jac_67_49(i)
343 jaci7=dett*jac_48_57(i)
344 jaci2=dett*(-jac2(i)*jac9(i)+jac3(i)*jac8(i))
345 jaci5=dett*jac_19_37(i)
346 jaci8=dett*(-jac1(i)*jac8(i)+jac2(i)*jac7(i))
347 jaci3=dett*( jac2(i)*jac6(i)-jac3(i)*jac5(i))
348 jaci6=dett*(-jac1(i)*jac6(i)+jac3(i)*jac4(i))
349 jaci9=dett*( jac1(i)*jac5(i)-jac2(i)*jac4(i))
377 hx=one_over_8*(x1(i)-x2(i)+x3(i)-x4(i)+x5(i)-x6(i)+x7(i)-x8(i))
378 hy=one_over_8*(y1(i)-y2(i)+y3(i)-y4(i)+y5(i)-y6(i)+y7(i)-y8(i))
379 hz=one_over_8*(z1(i)-z2(i)+z3(i)-z4(i)+z5(i)-z6(i)+z7(i)-z8(i))
380 px1h3(i)=px1(i)*hx+ py1(i)*hy+pz1(i)*hz
381 px2h3(i)=px2(i)*hx+ py2(i)*hy+pz2(i)*hz
382 px3h3(i)=px3(i)*hx+ py3(i)*hy+pz3(i)*hz
383 px4h3(i)=px4(i)*hx+ py4(i)*hy+pz4(i)*hz
388 h1x(i)=x1(i)+x2(i)-x3(i)-x4(i)-x5(i)-x6(i)+x7(i)+x8(i)
389 h1y(i)=y1(i)+y2(i)-y3(i)-y4(i)-y5(i)-y6(i)+y7(i)+y8(i)
390 h1z(i)=z1(i)+z2(i)-z3(i)-z4(i)-z5(i)-z6(i)+z7(i)+z8(i)
394 px1h1(i)=px1(i)*hx+ py1(i)*hy+pz1(i)*hz
395 px2h1(i)=px2(i)*hx+ py2(i)*hy+pz2(i)*hz
396 px3h1(i)=px3(i)*hx+ py3(i)*hy+pz3(i)*hz
397 px4h1(i)=px4(i)*hx+ py4(i)*hy+pz4(i)*hz
402 h2x(i)=x1(i)-x2(i)-x3(i)+x4(i)-x5(i)+x6(i)+x7(i)-x8(i)
403 h2y(i)=y1(i)-y2(i)-y3(i)+y4(i)-y5(i)+y6(i)+y7(i)-y8(i)
404 h2z(i)=z1(i)-z2(i)-z3(i)+z4(i)-z5(i)+z6(i)+z7(i)-z8(i)
408 px1h2(i)=px1(i)*hx+ py1(i)*hy+pz1(i)*hz
409 px2h2(i)=px2(i)*hx+ py2(i)*hy+pz2(i)*hz
410 px3h2(i)=px3(i)*hx+ py3(i)*hy+pz3(i)*hz
411 px4h2(i)=px4(i)*hx+ py4(i)*hy+pz4(i)*hz
416 hx=one_over_8*(-x1(i)+x2(i)-x3(i)+x4(i)+x5(i)-x6(i)+x7(i)-x8(i))
417 hy=one_over_8*(-y1(i)+y2(i)-y3(i)+y4(i)+y5(i)-y6(i)+y7(i)-y8(i))
418 hz=one_over_8*(-z1(i)+z2(i)-z3(i)+z4(i)+z5(i)-z6(i)+z7(i)-z8(i))
419 px1h4(i)=px1(i)*hx+ py1(i)*hy+pz1(i)*hz
420 px2h4(i)=px2(i)*hx+ py2(i)*hy+pz2(i)*hz
421 px3h4(i)=px3(i)*hx+ py3(i)*hy+pz3(i)*hz
422 px4h4(i)=px4(i)*hx+ py4(i)*hy+pz4(i)*hz
426 a_i = one_over_8/
area(i)
431 vzl(i) = one_over_64*jac5(i)*(
432 . jac9(i)*h1y(i)+jac1(i)*h2x(i)-jac3(i)*h2y(i)-jac7(i)*h1x(i))
433 . + one_over_64*jac4(i)*(
434 . jac3(i)*h2z(i)+jac8(i)*h1x(i)-jac9(i)*h1z(i)-jac2(i)*h2x(i))
435 . + one_over_64*jac6(i)*(
436 . jac7(i)*h1z(i)+jac2(i)*h2y(i)-jac1(i)*h2z(i)-jac8(i)*h1y(i))
442 2000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
443 3000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB:',i10/,
444 +
' SOLID-SHELL ELEMENT IS SWITCHED TO SMALL STRAIN OPTION'/)
subroutine scderi3(off, det, ngl, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, jac1, jac2, jac3, jac4, jac5, jac6, rx0, ry0, sx0, sy0, vzl, volg, sav, offg, nel, ismstr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)