OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8zderii3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| s8zderii3 ../engine/source/elements/solid/solide8z/s8zderii3.F
25!||--- called by ------------------------------------------------------
26!|| s8zke3 ../engine/source/elements/solid/solide8z/s8zke3.F
27!||====================================================================
28 SUBROUTINE s8zderii3(
29 1 OFFG, OFF, VOL, NGL,
30 2 KSI, ETA, ZETA, WI,
31 3 PXC1, PXC2, PXC3, PXC4,
32 4 PYC1, PYC2, PYC3, PYC4,
33 5 PZC1, PZC2, PZC3, PZC4,
34 6 PX1H1, PX1H2, PX1H3, PX1H4,
35 7 PX2H1, PX2H2, PX2H3, PX2H4,
36 8 PX3H1, PX3H2, PX3H3, PX3H4,
37 9 PX4H1, PX4H2, PX4H3, PX4H4,
38 A HX, HY, HZ, PX1,
39 B PX2, PX3, PX4, PX5,
40 C PX6, PX7, PX8, PY1,
41 D PY2, PY3, PY4, PY5,
42 E PY6, PY7, PY8, PZ1,
43 F PZ2, PZ3, PZ4, PZ5,
44 G PZ6, PZ7, PZ8, PXY1,
45 H PXY2, PXY3, PXY4, PXY5,
46 I PXY6, PXY7, PXY8, PYX1,
47 J PYX2, PYX3, PYX4, PYX5,
48 K PYX6, PYX7, PYX8, PXZ1,
49 L PXZ2, PXZ3, PXZ4, PXZ5,
50 M PXZ6, PXZ7, PXZ8, PZX1,
51 N PZX2, PZX3, PZX4, PZX5,
52 O PZX6, PZX7, PZX8, PYZ1,
53 P PYZ2, PYZ3, PYZ4, PYZ5,
54 Q PYZ6, PYZ7, PYZ8, PZY1,
55 R PZY2, PZY3, PZY4, PZY5,
56 S PZY6, PZY7, PZY8, BXY1,
57 T BXY2, BXY3, BXY4, BXY5,
58 U BXY6, BXY7, BXY8, BYX1,
59 V BYX2, BYX3, BYX4, BYX5,
60 W BYX6, BYX7, BYX8, BXZ1,
61 X BXZ2, BXZ3, BXZ4, BXZ5,
62 Y BXZ6, BXZ7, BXZ8, BZX1,
63 Z BZX2, BZX3, BZX4, BZX5,
64 1 BZX6, BZX7, BZX8, BYZ1,
65 2 BYZ2, BYZ3, BYZ4, BYZ5,
66 3 BYZ6, BYZ7, BYZ8, BZY1,
67 4 BZY2, BZY3, BZY4, BZY5,
68 5 BZY6, BZY7, BZY8, CJ1,
69 6 CJ2, CJ3, CJ4, CJ5,
70 7 CJ6, CJ7, CJ8, CJ9,
71 8 JAC4, JAC5, JAC6, JAC7,
72 9 JAC8, JAC9, SMAX, DELTAX,
73 A NU, ICP, IDEG, NEL,
74 B MTN, ISMSTR, JHBE)
75C-----------------------------------------------
76C I m p l i c i t T y p e s
77C-----------------------------------------------
78#include "implicit_f.inc"
79#include "comlock.inc"
80C-----------------------------------------------
81C G l o b a l P a r a m e t e r s
82C-----------------------------------------------
83#include "mvsiz_p.inc"
84C-----------------------------------------------
85C C o m m o n B l o c k s
86C-----------------------------------------------
87#include "units_c.inc"
88#include "scr17_c.inc"
89#include "impl1_c.inc"
90C-----------------------------------------------
91C D u m m y A r g u m e n t s
92C-----------------------------------------------
93 INTEGER, INTENT(IN) :: NEL
94 INTEGER, INTENT(IN) :: MTN
95 INTEGER, INTENT(IN) :: ISMSTR
96 INTEGER, INTENT(IN) :: JHBE
97 INTEGER ICP,IDEG(*)
98C REAL
99 my_real
100 . OFF(*),OFFG(*),VOL(*),KSI,ETA,ZETA,WI,
101 . PXC1(*), PXC2(*), PXC3(*), PXC4(*),
102 . PYC1(*), PYC2(*), PYC3(*), PYC4(*),
103 . PZC1(*), PZC2(*), PZC3(*), PZC4(*),
104 . PX1H1(*), PX1H2(*), PX1H3(*),PX1H4(*),
105 . PX2H1(*), PX2H2(*), PX2H3(*),PX2H4(*),
106 . PX3H1(*), PX3H2(*), PX3H3(*),PX3H4(*),
107 . PX4H1(*), PX4H2(*), PX4H3(*),PX4H4(*),
108 . HX(MVSIZ,4), HY(MVSIZ,4), HZ(MVSIZ,4),
109 . PX1(*), PX2(*), PX3(*), PX4(*),
110 . PX5(*), PX6(*), PX7(*), PX8(*),
111 . PY1(*), PY2(*), PY3(*), PY4(*),
112 . PY5(*), PY6(*), PY7(*), PY8(*),
113 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
114 . PZ5(*), PZ6(*), PZ7(*), PZ8(*),
115 . PXY1(*),PXY2(*),PXY3(*),PXY4(*),
116 . PXY5(*),PXY6(*),PXY7(*),PXY8(*),
117 . PYX1(*),PYX2(*),PYX3(*),PYX4(*),
118 . PYX5(*),PYX6(*),PYX7(*),PYX8(*),
119 . PXZ1(*),PXZ2(*),PXZ3(*),PXZ4(*),
120 . PXZ5(*),PXZ6(*),PXZ7(*),PXZ8(*),
121 . PZX1(*),PZX2(*),PZX3(*),PZX4(*),
122 . PZX5(*),PZX6(*),PZX7(*),PZX8(*),
123 . PYZ1(*),PYZ2(*),PYZ3(*),PYZ4(*),
124 . PYZ5(*),PYZ6(*),PYZ7(*),PYZ8(*),
125 . PZY1(*),PZY2(*),PZY3(*),PZY4(*),
126 . PZY5(*),PZY6(*),PZY7(*),PZY8(*),
127 . BXY1(*),BXY2(*),BXY3(*),BXY4(*),
128 . BXY5(*),BXY6(*),BXY7(*),BXY8(*),
129 . BYX1(*),BYX2(*),BYX3(*),BYX4(*),
130 . BYX5(*),BYX6(*),BYX7(*),BYX8(*),
131 . BXZ1(*),BXZ2(*),BXZ3(*),BXZ4(*),
132 . BXZ5(*),BXZ6(*),BXZ7(*),BXZ8(*),
133 . BZX1(*),BZX2(*),BZX3(*),BZX4(*),
134 . BZX5(*),BZX6(*),BZX7(*),BZX8(*),
135 . BYZ1(*),BYZ2(*),BYZ3(*),BYZ4(*),
136 . BYZ5(*),BYZ6(*),BYZ7(*),BYZ8(*),
137 . BZY1(*),BZY2(*),BZY3(*),BZY4(*),
138 . BZY5(*),BZY6(*),BZY7(*),BZY8(*),
139 . cj1(*),cj2(*),cj3(*),
140 . cj4(*),cj5(*),cj6(*),
141 . cj7(*),cj8(*),cj9(*),
142 . jac4,jac5,jac6,
143 . jac7,jac8,jac9,
144 . smax(*),deltax(*),nu(*)
145C-----------------------------------------------
146C L o c a l V a r i a b l e s
147C-----------------------------------------------
148 INTEGER NGL(*), I, J ,ICOR,ep
149C REAL
150C 12
151 my_real
152 . DET(MVSIZ) ,DETT , NU1(MVSIZ),
153 . JAC1,JAC2,JAC3,
154 . JACI1, JACI2, JACI3,
155 . JACI4, JACI5, JACI6,
156 . JACI7, JACI8, JACI9,
157 . JAC_59_68(MVSIZ), JAC_67_49(MVSIZ), JAC_48_57(MVSIZ),
158 . JAC_38_29(MVSIZ), JAC_19_37(MVSIZ), JAC_27_18(MVSIZ),
159 . JAC_26_35(MVSIZ), JAC_34_16(MVSIZ), JAC_15_24(MVSIZ),
160 . JACI12(MVSIZ), JACI45(MVSIZ), JACI78(MVSIZ),
161 . D1X(MVSIZ) , D2X(MVSIZ) , D3X(MVSIZ) , D4X(MVSIZ) ,
162 . D1Y(MVSIZ) , D2Y(MVSIZ) , D3Y(MVSIZ) , D4Y(MVSIZ) ,
163 . D1Z(MVSIZ) , D2Z(MVSIZ) , D3Z(MVSIZ) , D4Z(MVSIZ) ,
164 . XG1(MVSIZ), XG2(MVSIZ), XG3(MVSIZ), XG4(MVSIZ),
165 . YG1(MVSIZ), YG2(MVSIZ), YG3(MVSIZ), YG4(MVSIZ),
166 . ZG1(MVSIZ), ZG2(MVSIZ), ZG3(MVSIZ), ZG4(MVSIZ),
167 . F1,F2,F3,XS,XAS,YS,YAS,ZS,ZAS,CS,CAS ,BXHI,BYHI,BZHI
168C-----------------------------------------------
169C--debug for termes PXYj... consisting w/ S8ZFORC3----
170 DO I=1,nel
171 jac1=cj1(i)+hx(i,3)*eta+(hx(i,2)+hx(i,4)*eta)*zeta
172 jac2=cj2(i)+hy(i,3)*eta+(hy(i,2)+hy(i,4)*eta)*zeta
173 jac3=cj3(i)+hz(i,3)*eta+(hz(i,2)+hz(i,4)*eta)*zeta
174C
175 jac4=cj4(i)+hx(i,1)*zeta+(hx(i,3)+hx(i,4)*zeta)*ksi
176 jac5=cj5(i)+hy(i,1)*zeta+(hy(i,3)+hy(i,4)*zeta)*ksi
177 jac6=cj6(i)+hz(i,1)*zeta+(hz(i,3)+hz(i,4)*zeta)*ksi
178C
179 jac7=cj7(i)+hx(i,2)*ksi+(hx(i,1)+hx(i,4)*ksi)*eta
180 jac8=cj8(i)+hy(i,2)*ksi+(hy(i,1)+hy(i,4)*ksi)*eta
181 jac9=cj9(i)+hz(i,2)*ksi+(hz(i,1)+hz(i,4)*ksi)*eta
182C
183C JACOBIAN
184C
185 jac_59_68(i)=jac5*jac9-jac6*jac8
186 jac_67_49(i)=jac6*jac7-jac4*jac9
187 jac_38_29(i)=(-jac2*jac9+jac3*jac8)
188 jac_19_37(i)=( jac1*jac9-jac3*jac7)
189 jac_27_18(i)=(-jac1*jac8+jac2*jac7)
190 jac_26_35(i)=( jac2*jac6-jac3*jac5)
191 jac_34_16(i)=(-jac1*jac6+jac3*jac4)
192 jac_15_24(i)=( jac1*jac5-jac2*jac4)
193 jac_48_57(i)=jac4*jac8-jac5*jac7
194C
195 det(i)=one_over_512*(jac1*jac_59_68(i)+jac2*jac_67_49(i)+jac3*jac_48_57(i))
196 vol(i)= wi*det(i)
197 ENDDO
198C
199 icor = 0
200 DO i=1,nel
201 off(i)=offg(i)
202 IF(off(i)==zero)THEN
203 det(i)=one
204 IF (vol(i)<=zero) vol(i)=one
205 ELSEIF (vol(i)<=zero ) THEN
206 vol(i)= em20
207 off(i) =zero
208 icor=1
209 ENDIF
210 ENDDO
211C
212 IF (icor>0.AND.impl_s>0) THEN
213 DO i=1,nel
214 IF(vol(i)<=zero.AND.off(i)/=zero)THEN
215 vol(i)= em20
216 off(i) =zero
217 IF (imp_chk>0) THEN
218#include "lockon.inc"
219 WRITE(iout ,2001) ngl(i)
220#include "lockoff.inc"
221 idel7nok = 1
222 imp_ir = imp_ir + 1
223 ELSEIF (imconv==1) THEN
224#include "lockon.inc"
225 WRITE(istdo,2000) ngl(i)
226 WRITE(iout ,2000) ngl(i)
227#include "lockoff.inc"
228 idel7nok = 1
229 ENDIF
230 ENDIF
231 ENDDO
232 END IF
233C
234 f1 = eta*zeta
235 f2 = ksi*zeta
236 f3 = ksi*eta
237 DO i=1,nel
238 dett=one_over_512/det(i)
239 jaci1=dett*jac_59_68(i)
240 jaci4=dett*jac_67_49(i)
241 jaci7=dett*jac_48_57(i)
242 jaci2=dett*jac_38_29(i)
243 jaci5=dett*jac_19_37(i)
244 jaci8=dett*jac_27_18(i)
245 jaci3=dett*jac_26_35(i)
246 jaci6=dett*jac_34_16(i)
247 jaci9=dett*jac_15_24(i)
248C
249 nu1(i) = nu(i)/(one - nu(i))
250C
251 d1x(i)=jaci3*eta +jaci2*zeta
252 d2x(i)=jaci1*zeta +jaci3*ksi
253 d3x(i)=jaci2*ksi +jaci1*eta
254 d4x(i)=jaci1*f1+jaci2*f2+jaci3*f3
255C
256 d1y(i)=jaci6*eta +jaci5*zeta
257 d2y(i)=jaci4*zeta +jaci6*ksi
258 d3y(i)=jaci5*ksi +jaci4*eta
259 d4y(i)=jaci4*f1+jaci5*f2+jaci6*f3
260C
261 d1z(i)=jaci9*eta +jaci8*zeta
262 d2z(i)=jaci7*zeta +jaci9*ksi
263 d3z(i)=jaci8*ksi +jaci7*eta
264 d4z(i)=jaci7*f1+jaci8*f2+jaci9*f3
265 ENDDO
266C-------Node 1,7-----
267 DO i=1,nel
268 xg1(i) = px1h1(i)*d1x(i)
269 xg2(i) = px1h2(i)*d2x(i)
270 xg3(i) = px1h3(i)*d3x(i)
271 xg4(i) = px1h4(i)*d4x(i)
272 yg1(i) = px1h1(i)*d1y(i)
273 yg2(i) = px1h2(i)*d2y(i)
274 yg3(i) = px1h3(i)*d3y(i)
275 yg4(i) = px1h4(i)*d4y(i)
276 zg1(i) = px1h1(i)*d1z(i)
277 zg2(i) = px1h2(i)*d2z(i)
278 zg3(i) = px1h3(i)*d3z(i)
279 zg4(i) = px1h4(i)*d4z(i)
280 ENDDO
281C
282 DO i=1,nel
283 xs =d1x(i)+d2x(i)+d3x(i)
284 xas =d4x(i)+xg1(i)+xg2(i)+xg3(i)+xg4(i)-pxc1(i)
285 px1(i)=xs-xas
286 px7(i)=xs+xas
287 ys =d1y(i)+d2y(i)+d3y(i)
288 yas =d4y(i)+yg1(i)+yg2(i)+yg3(i)+yg4(i)-pyc1(i)
289 py1(i)=ys-yas
290 py7(i)=ys+yas
291 zs =d1z(i)+d2z(i)+d3z(i)
292 zas =d4z(i)+zg1(i)+zg2(i)+zg3(i)+zg4(i)-pzc1(i)
293 pz1(i)=zs-zas
294 pz7(i)=zs+zas
295C
296 ys =d1y(i)+d2y(i)
297 yas =yg1(i)+yg2(i)-pyc1(i)
298 pxy1(i)=ys-yas
299 pxy7(i)=ys+yas
300 xs =d1x(i)+d2x(i)
301 xas =xg1(i)+xg2(i)-pxc1(i)
302 pyx1(i)=xs-xas
303 pyx7(i)=xs+xas
304 zs =d1z(i)+d3z(i)
305 zas =zg1(i)+zg3(i)-pzc1(i)
306 pxz1(i)=zs-zas
307 pxz7(i)=zs+zas
308 xs =d1x(i)+d3x(i)
309 xas =xg1(i)+xg3(i)-pxc1(i)
310 pzx1(i)=xs-xas
311 pzx7(i)=xs+xas
312 zs =d2z(i)+d3z(i)
313 zas =zg2(i)+zg3(i)-pzc1(i)
314 pyz1(i)=zs-zas
315 pyz7(i)=zs+zas
316 ys =d2y(i)+d3y(i)
317 yas =yg2(i)+yg3(i)-pyc1(i)
318 pzy1(i)=ys-yas
319 pzy7(i)=ys+yas
320 ENDDO
321C
322 IF (icp /= 1 .AND. icp /= 11) THEN
323 DO i=1,nel
324 cas =-nu(i)*(d4x(i)+xg1(i)+xg4(i))
325 xas =-nu1(i)*xg3(i)+cas
326 bxy1(i)=-xas
327 bxy7(i)=xas
328 xas =-nu1(i)*xg2(i)+cas
329 bxz1(i)=-xas
330 bxz7(i)=xas
331 cas =-nu(i)*(d4y(i)+yg2(i)+yg4(i))
332C
333 yas =-nu1(i)*yg3(i)+cas
334 byx1(i)=-yas
335 byx7(i)=yas
336 yas =-nu1(i)*yg1(i)+cas
337 byz1(i)=-yas
338 byz7(i)=yas
339 cas =-nu(i)*(d4z(i)+zg3(i)+zg4(i))
340 zas =-nu1(i)*zg2(i)+cas
341 bzx1(i)=-zas
342 bzx7(i)=zas
343 zas =-nu1(i)*zg1(i)+cas
344 bzy1(i)=-zas
345 bzy7(i)=zas
346 ENDDO
347 ENDIF
348C-------Node 2,8-----
349 DO i=1,nel
350 xg1(i) = px2h1(i)*d1x(i)
351 xg2(i) = px2h2(i)*d2x(i)
352 xg3(i) = px2h3(i)*d3x(i)
353 xg4(i) = px2h4(i)*d4x(i)
354 yg1(i) = px2h1(i)*d1y(i)
355 yg2(i) = px2h2(i)*d2y(i)
356 yg3(i) = px2h3(i)*d3y(i)
357 yg4(i) = px2h4(i)*d4y(i)
358 zg1(i) = px2h1(i)*d1z(i)
359 zg2(i) = px2h2(i)*d2z(i)
360 zg3(i) = px2h3(i)*d3z(i)
361 zg4(i) = px2h4(i)*d4z(i)
362 ENDDO
363C
364 DO i=1,nel
365 xs =d1x(i)-d2x(i)-d3x(i)
366 xas =-d4x(i)+xg1(i)+xg2(i)+xg3(i)+xg4(i)-pxc2(i)
367 px2(i)=xs-xas
368 px8(i)=xs+xas
369 ys =d1y(i)-d2y(i)-d3y(i)
370 yas =-d4y(i)+yg1(i)+yg2(i)+yg3(i)+yg4(i)-pyc2(i)
371 py2(i)=ys-yas
372 py8(i)=ys+yas
373 zs =d1z(i)-d2z(i)-d3z(i)
374 zas =-d4z(i)+zg1(i)+zg2(i)+zg3(i)+zg4(i)-pzc2(i)
375 pz2(i)=zs-zas
376 pz8(i)=zs+zas
377C
378 ys =d1y(i)-d2y(i)
379 yas =yg1(i)+yg2(i)-pyc2(i)
380 pxy2(i)=ys-yas
381 pxy8(i)=ys+yas
382 xs =d1x(i)-d2x(i)
383 xas =xg1(i)+xg2(i)-pxc2(i)
384 pyx2(i)=xs-xas
385 pyx8(i)=xs+xas
386 zs =d1z(i)-d3z(i)
387 zas =zg1(i)+zg3(i)-pzc2(i)
388 pxz2(i)=zs-zas
389 pxz8(i)=zs+zas
390 xs =d1x(i)-d3x(i)
391 xas =xg1(i)+xg3(i)-pxc2(i)
392 pzx2(i)=xs-xas
393 pzx8(i)=xs+xas
394 zs =-d2z(i)-d3z(i)
395 zas =zg2(i)+zg3(i)-pzc2(i)
396 pyz2(i)=zs-zas
397 pyz8(i)=zs+zas
398 ys =-d2y(i)-d3y(i)
399 yas =yg2(i)+yg3(i)-pyc2(i)
400 pzy2(i)=ys-yas
401 pzy8(i)=ys+yas
402 ENDDO
403C
404 IF (icp /= 1 .AND. icp /= 11) THEN
405 DO i=1,nel
406 cas =-nu(i)*(-d4x(i)+xg1(i)+xg4(i))
407 xas =-nu1(i)*xg3(i)+cas
408 bxy2(i)=-xas
409 bxy8(i)=xas
410 xas =-nu1(i)*xg2(i)+cas
411 bxz2(i)=-xas
412 bxz8(i)=xas
413 cas =-nu(i)*(-d4y(i)+yg2(i)+yg4(i))
414 yas =-nu1(i)*yg3(i)+cas
415 byx2(i)=-yas
416 byx8(i)=yas
417 yas =-nu1(i)*yg1(i)+cas
418 byz2(i)=-yas
419 byz8(i)=yas
420 cas =-nu(i)*(-d4z(i)+zg3(i)+zg4(i))
421 zas =-nu1(i)*zg2(i)+cas
422 bzx2(i)=-zas
423 bzx8(i)=zas
424 zas =-nu1(i)*zg1(i)+cas
425 bzy2(i)=-zas
426 bzy8(i)=zas
427 ENDDO
428 ENDIF
429C
430C-------Node 3,5-----
431 DO i=1,nel
432 xg1(i) = px3h1(i)*d1x(i)
433 xg2(i) = px3h2(i)*d2x(i)
434 xg3(i) = px3h3(i)*d3x(i)
435 xg4(i) = px3h4(i)*d4x(i)
436 yg1(i) = px3h1(i)*d1y(i)
437 yg2(i) = px3h2(i)*d2y(i)
438 yg3(i) = px3h3(i)*d3y(i)
439 yg4(i) = px3h4(i)*d4y(i)
440 zg1(i) = px3h1(i)*d1z(i)
441 zg2(i) = px3h2(i)*d2z(i)
442 zg3(i) = px3h3(i)*d3z(i)
443 zg4(i) = px3h4(i)*d4z(i)
444 ENDDO
445C
446 DO i=1,nel
447 xs =-d1x(i)-d2x(i)+d3x(i)
448 xas =d4x(i)+xg1(i)+xg2(i)+xg3(i)+xg4(i)-pxc3(i)
449 px3(i)=xs-xas
450 px5(i)=xs+xas
451 ys =-d1y(i)-d2y(i)+d3y(i)
452 yas =d4y(i)+yg1(i)+yg2(i)+yg3(i)+yg4(i)-pyc3(i)
453 py3(i)=ys-yas
454 py5(i)=ys+yas
455 zs =-d1z(i)-d2z(i)+d3z(i)
456 zas =d4z(i)+zg1(i)+zg2(i)+zg3(i)+zg4(i)-pzc3(i)
457 pz3(i)=zs-zas
458 pz5(i)=zs+zas
459C
460 ys =-d1y(i)-d2y(i)
461 yas =yg1(i)+yg2(i)-pyc3(i)
462 pxy3(i)=ys-yas
463 pxy5(i)=ys+yas
464 xs =-d1x(i)-d2x(i)
465 xas =xg1(i)+xg2(i)-pxc3(i)
466 pyx3(i)=xs-xas
467 pyx5(i)=xs+xas
468 zs =-d1z(i)+d3z(i)
469 zas =zg1(i)+zg3(i)-pzc3(i)
470 pxz3(i)=zs-zas
471 pxz5(i)=zs+zas
472 xs =-d1x(i)+d3x(i)
473 xas =xg1(i)+xg3(i)-pxc3(i)
474 pzx3(i)=xs-xas
475 pzx5(i)=xs+xas
476 zs =-d2z(i)+d3z(i)
477 zas =zg2(i)+zg3(i)-pzc3(i)
478 pyz3(i)=zs-zas
479 pyz5(i)=zs+zas
480 ys =-d2y(i)+d3y(i)
481 yas =yg2(i)+yg3(i)-pyc3(i)
482 pzy3(i)=ys-yas
483 pzy5(i)=ys+yas
484 ENDDO
485C
486 IF (icp /= 1 .AND. icp /= 11) THEN
487 DO i=1,nel
488 cas =-nu(i)*(d4x(i)+xg1(i)+xg4(i))
489 xas =-nu1(i)*xg3(i)+cas
490 bxy3(i)=-xas
491 bxy5(i)=xas
492 xas =-nu1(i)*xg2(i)+cas
493 bxz3(i)=-xas
494 bxz5(i)=xas
495 cas =-nu(i)*(d4y(i)+yg2(i)+yg4(i))
496 yas =-nu1(i)*yg3(i)+cas
497 byx3(i)=-yas
498 byx5(i)=yas
499 yas =-nu1(i)*yg1(i)+cas
500 byz3(i)=-yas
501 byz5(i)=yas
502 cas =-nu(i)*(d4z(i)+zg3(i)+zg4(i))
503 zas =-nu1(i)*zg2(i)+cas
504 bzx3(i)=-zas
505 bzx5(i)=zas
506 zas =-nu1(i)*zg1(i)+cas
507 bzy3(i)=-zas
508 bzy5(i)=zas
509 ENDDO
510 ENDIF
511C-------Node 4,6-----
512 DO i=1,nel
513 xg1(i) = px4h1(i)*d1x(i)
514 xg2(i) = px4h2(i)*d2x(i)
515 xg3(i) = px4h3(i)*d3x(i)
516 xg4(i) = px4h4(i)*d4x(i)
517 yg1(i) = px4h1(i)*d1y(i)
518 yg2(i) = px4h2(i)*d2y(i)
519 yg3(i) = px4h3(i)*d3y(i)
520 yg4(i) = px4h4(i)*d4y(i)
521 zg1(i) = px4h1(i)*d1z(i)
522 zg2(i) = px4h2(i)*d2z(i)
523 zg3(i) = px4h3(i)*d3z(i)
524 zg4(i) = px4h4(i)*d4z(i)
525 ENDDO
526C
527 DO i=1,nel
528 xs =-d1x(i)+d2x(i)-d3x(i)
529 xas =-d4x(i)+xg1(i)+xg2(i)+xg3(i)+xg4(i)-pxc4(i)
530 px4(i)=xs-xas
531 px6(i)=xs+xas
532 ys =-d1y(i)+d2y(i)-d3y(i)
533 yas =-d4y(i)+yg1(i)+yg2(i)+yg3(i)+yg4(i)-pyc4(i)
534 py4(i)=ys-yas
535 py6(i)=ys+yas
536 zs =-d1z(i)+d2z(i)-d3z(i)
537 zas =-d4z(i)+zg1(i)+zg2(i)+zg3(i)+zg4(i)-pzc4(i)
538 pz4(i)=zs-zas
539 pz6(i)=zs+zas
540C
541 ys =-d1y(i)+d2y(i)
542 yas =yg1(i)+yg2(i)-pyc4(i)
543 pxy4(i)=ys-yas
544 pxy6(i)=ys+yas
545 xs =-d1x(i)+d2x(i)
546 xas =xg1(i)+xg2(i)-pxc4(i)
547 pyx4(i)=xs-xas
548 pyx6(i)=xs+xas
549 zs =-d1z(i)-d3z(i)
550 zas =zg1(i)+zg3(i)-pzc4(i)
551 pxz4(i)=zs-zas
552 pxz6(i)=zs+zas
553 xs =-d1x(i)-d3x(i)
554 xas =xg1(i)+xg3(i)-pxc4(i)
555 pzx4(i)=xs-xas
556 pzx6(i)=xs+xas
557 zs =d2z(i)-d3z(i)
558 zas =zg2(i)+zg3(i)-pzc4(i)
559 pyz4(i)=zs-zas
560 pyz6(i)=zs+zas
561 ys =d2y(i)-d3y(i)
562 yas =yg2(i)+yg3(i)-pyc4(i)
563 pzy4(i)=ys-yas
564 pzy6(i)=ys+yas
565 ENDDO
566C
567 IF (icp /= 1 .AND. icp /= 11) THEN
568 DO i=1,nel
569 cas =-nu(i)*(-d4x(i)+xg1(i)+xg4(i))
570 xas =-nu1(i)*xg3(i)+cas
571 bxy4(i)=-xas
572 bxy6(i)=xas
573 xas =-nu1(i)*xg2(i)+cas
574 bxz4(i)=-xas
575 bxz6(i)=xas
576 cas =-nu(i)*(-d4y(i)+yg2(i)+yg4(i))
577 yas =-nu1(i)*yg3(i)+cas
578 byx4(i)=-yas
579 byx6(i)=yas
580 yas =-nu1(i)*yg1(i)+cas
581 byz4(i)=-yas
582 byz6(i)=yas
583 cas =-nu(i)*(-d4z(i)+zg3(i)+zg4(i))
584 zas =-nu1(i)*zg2(i)+cas
585 bzx4(i)=-zas
586 bzx6(i)=zas
587 zas =-nu1(i)*zg1(i)+cas
588 bzy4(i)=-zas
589 bzy6(i)=zas
590 ENDDO
591C
592 DO i=1,nel
593 cs =-nu(i)*d1x(i)
594 xs =-nu1(i)*d3x(i)
595 bxy1(i)=bxy1(i)+cs+xs
596 bxy2(i)=bxy2(i)+cs-xs
597 bxy3(i)=bxy3(i)-cs+xs
598 bxy4(i)=bxy4(i)-cs-xs
599 bxy5(i)=bxy5(i)-cs+xs
600 bxy6(i)=bxy6(i)-cs-xs
601 bxy7(i)=bxy7(i)+cs+xs
602 bxy8(i)=bxy8(i)+cs-xs
603 xs =-nu1(i)*d2x(i)
604 bxz1(i)=bxz1(i)+cs+xs
605 bxz2(i)=bxz2(i)+cs-xs
606 bxz3(i)=bxz3(i)-cs-xs
607 bxz4(i)=bxz4(i)-cs+xs
608 bxz5(i)=bxz5(i)-cs-xs
609 bxz6(i)=bxz6(i)-cs+xs
610 bxz7(i)=bxz7(i)+cs+xs
611 bxz8(i)=bxz8(i)+cs-xs
612 ENDDO
613 DO i=1,nel
614 cs =-nu(i)*d2y(i)
615 ys =-nu1(i)*d3y(i)
616 byx1(i)=byx1(i)+cs+ys
617 byx2(i)=byx2(i)-cs-ys
618 byx3(i)=byx3(i)-cs+ys
619 byx4(i)=byx4(i)+cs-ys
620 byx5(i)=byx5(i)-cs+ys
621 byx6(i)=byx6(i)+cs-ys
622 byx7(i)=byx7(i)+cs+ys
623 byx8(i)=byx8(i)-cs-ys
624 ys =-nu1(i)*d1y(i)
625 byz1(i)=byz1(i)+cs+ys
626 byz2(i)=byz2(i)-cs+ys
627 byz3(i)=byz3(i)-cs-ys
628 byz4(i)=byz4(i)+cs-ys
629 byz5(i)=byz5(i)-cs-ys
630 byz6(i)=byz6(i)+cs-ys
631 byz7(i)=byz7(i)+cs+ys
632 byz8(i)=byz8(i)-cs+ys
633 ENDDO
634 DO i=1,nel
635 cs =-nu(i)*d3z(i)
636 zs =-nu1(i)*d2z(i)
637 bzx1(i)=bzx1(i)+cs+zs
638 bzx2(i)=bzx2(i)-cs-zs
639 bzx3(i)=bzx3(i)+cs-zs
640 bzx4(i)=bzx4(i)-cs+zs
641 bzx5(i)=bzx5(i)+cs-zs
642 bzx6(i)=bzx6(i)-cs+zs
643 bzx7(i)=bzx7(i)+cs+zs
644 bzx8(i)=bzx8(i)-cs-zs
645 zs =-nu1(i)*d1z(i)
646 bzy1(i)=bzy1(i)+cs+zs
647 bzy2(i)=bzy2(i)-cs+zs
648 bzy3(i)=bzy3(i)+cs-zs
649 bzy4(i)=bzy4(i)-cs-zs
650 bzy5(i)=bzy5(i)+cs-zs
651 bzy6(i)=bzy6(i)-cs-zs
652 bzy7(i)=bzy7(i)+cs+zs
653 bzy8(i)=bzy8(i)-cs+zs
654 ENDDO
655 ENDIF
656 IF (idts6==0) THEN
657 DO i=1,nel
658 deltax(i)=min(deltax(i),hundred28*det(i)*smax(i))
659 ENDDO
660 ELSE
661 DO i=1,nel
662 IF (ideg(i)==0) deltax(i)=min(deltax(i),hundred28*det(i)*smax(i))
663 ENDDO
664 END IF
665C
666 IF ((impl_s >0.AND.jhbe /= 14.AND.jhbe < 20).OR.
667 . ((ismstr==10.OR.ismstr==12).AND.
668 . (icp==1.OR.icp==11.OR.mtn==99.OR.mtn==1).AND.jhbe==14)) THEN
669 DO i=1,nel
670 pxy1(i)=py1(i)
671 pxy2(i)=py2(i)
672 pxy3(i)=py3(i)
673 pxy4(i)=py4(i)
674 pxy5(i)=py5(i)
675 pxy6(i)=py6(i)
676 pxy7(i)=py7(i)
677 pxy8(i)=py8(i)
678C
679 pyx1(i)=px1(i)
680 pyx2(i)=px2(i)
681 pyx3(i)=px3(i)
682 pyx4(i)=px4(i)
683 pyx5(i)=px5(i)
684 pyx6(i)=px6(i)
685 pyx7(i)=px7(i)
686 pyx8(i)=px8(i)
687 ENDDO
688 DO i=1,nel
689 pyz1(i)=pz1(i)
690 pyz2(i)=pz2(i)
691 pyz3(i)=pz3(i)
692 pyz4(i)=pz4(i)
693 pyz5(i)=pz5(i)
694 pyz6(i)=pz6(i)
695 pyz7(i)=pz7(i)
696 pyz8(i)=pz8(i)
697C
698 pzy1(i)=py1(i)
699 pzy2(i)=py2(i)
700 pzy3(i)=py3(i)
701 pzy4(i)=py4(i)
702 pzy5(i)=py5(i)
703 pzy6(i)=py6(i)
704 pzy7(i)=py7(i)
705 pzy8(i)=py8(i)
706 ENDDO
707 DO i=1,nel
708 pxz1(i)=pz1(i)
709 pxz2(i)=pz2(i)
710 pxz3(i)=pz3(i)
711 pxz4(i)=pz4(i)
712 pxz5(i)=pz5(i)
713 pxz6(i)=pz6(i)
714 pxz7(i)=pz7(i)
715 pxz8(i)=pz8(i)
716C
717 pzx1(i)=px1(i)
718 pzx2(i)=px2(i)
719 pzx3(i)=px3(i)
720 pzx4(i)=px4(i)
721 pzx5(i)=px5(i)
722 pzx6(i)=px6(i)
723 pzx7(i)=px7(i)
724 pzx8(i)=px8(i)
725 ENDDO
726 ENDIF
727 IF ((ismstr==10.OR.ismstr==12).AND.mtn==1.AND.jhbe==14.AND.
728 . (icp/=1.AND.icp/=11)) THEN
729 DO i=1,nel
730 bxy1(i)=zero
731 bxz1(i)=zero
732 byx1(i)=zero
733 byz1(i)=zero
734 bzx1(i)=zero
735 bzy1(i)=zero
736 bxy2(i)=zero
737 bxz2(i)=zero
738 byx2(i)=zero
739 byz2(i)=zero
740 bzx2(i)=zero
741 bzy2(i)=zero
742 bxy3(i)=zero
743 bxz3(i)=zero
744 byx3(i)=zero
745 byz3(i)=zero
746 bzx3(i)=zero
747 bzy3(i)=zero
748 bxy4(i)=zero
749 bxz4(i)=zero
750 byx4(i)=zero
751 byz4(i)=zero
752 bzx4(i)=zero
753 bzy4(i)=zero
754 bxy5(i)=zero
755 bxz5(i)=zero
756 byx5(i)=zero
757 byz5(i)=zero
758 bzx5(i)=zero
759 bzy5(i)=zero
760 bxy6(i)=zero
761 bxz6(i)=zero
762 byx6(i)=zero
763 byz6(i)=zero
764 bzx6(i)=zero
765 bzy6(i)=zero
766 bxy7(i)=zero
767 bxz7(i)=zero
768 byx7(i)=zero
769 byz7(i)=zero
770 bzx7(i)=zero
771 bzy7(i)=zero
772 bxy8(i)=zero
773 bxz8(i)=zero
774 byx8(i)=zero
775 byz8(i)=zero
776 bzx8(i)=zero
777 bzy8(i)=zero
778 ENDDO
779 ENDIF
780C-----------for the imcompressible laws
781C-------|BXX BYX BZX |
782C-------|BXY BYY BZY | same than H8A
783C-------|BXZ BYZ BZZ |
784 IF (icp==11) THEN
785 DO i=1,nel
786 bxhi=third*(px1(i)-pxc1(i))
787 byhi=third*(py1(i)-pyc1(i))
788 bzhi=third*(pz1(i)-pzc1(i))
789 px1(i)=pxc1(i)+two*bxhi
790 py1(i)=pyc1(i)+two*byhi
791 pz1(i)=pzc1(i)+two*bzhi
792 bxy1(i)=-bxhi
793 bxz1(i)=-bxhi
794 byx1(i)=-byhi
795 byz1(i)=-byhi
796 bzx1(i)=-bzhi
797 bzy1(i)=-bzhi
798 ENDDO
799 DO i=1,nel
800 bxhi=third*(px2(i)-pxc2(i))
801 byhi=third*(py2(i)-pyc2(i))
802 bzhi=third*(pz2(i)-pzc2(i))
803 px2(i)=pxc2(i)+two*bxhi
804 py2(i)=pyc2(i)+two*byhi
805 pz2(i)=pzc2(i)+two*bzhi
806 bxy2(i)=-bxhi
807 bxz2(i)=-bxhi
808 byx2(i)=-byhi
809 byz2(i)=-byhi
810 bzx2(i)=-bzhi
811 bzy2(i)=-bzhi
812 ENDDO
813 DO i=1,nel
814 bxhi=third*(px3(i)-pxc3(i))
815 byhi=third*(py3(i)-pyc3(i))
816 bzhi=third*(pz3(i)-pzc3(i))
817 px3(i)=pxc3(i)+two*bxhi
818 py3(i)=pyc3(i)+two*byhi
819 pz3(i)=pzc3(i)+two*bzhi
820 bxy3(i)=-bxhi
821 bxz3(i)=-bxhi
822 byx3(i)=-byhi
823 byz3(i)=-byhi
824 bzx3(i)=-bzhi
825 bzy3(i)=-bzhi
826 ENDDO
827 DO i=1,nel
828 bxhi=third*(px4(i)-pxc4(i))
829 byhi=third*(py4(i)-pyc4(i))
830 bzhi=third*(pz4(i)-pzc4(i))
831 px4(i)=pxc4(i)+two*bxhi
832 py4(i)=pyc4(i)+two*byhi
833 pz4(i)=pzc4(i)+two*bzhi
834 bxy4(i)=-bxhi
835 bxz4(i)=-bxhi
836 byx4(i)=-byhi
837 byz4(i)=-byhi
838 bzx4(i)=-bzhi
839 bzy4(i)=-bzhi
840 ENDDO
841 DO i=1,nel
842 bxhi=third*(px5(i)+pxc3(i))
843 byhi=third*(py5(i)+pyc3(i))
844 bzhi=third*(pz5(i)+pzc3(i))
845 px5(i)=-pxc3(i)+two*bxhi
846 py5(i)=-pyc3(i)+two*byhi
847 pz5(i)=-pzc3(i)+two*bzhi
848 bxy5(i)=-bxhi
849 bxz5(i)=-bxhi
850 byx5(i)=-byhi
851 byz5(i)=-byhi
852 bzx5(i)=-bzhi
853 bzy5(i)=-bzhi
854 ENDDO
855 DO i=1,nel
856 bxhi=third*(px6(i)+pxc4(i))
857 byhi=third*(py6(i)+pyc4(i))
858 bzhi=third*(pz6(i)+pzc4(i))
859 px6(i)=-pxc4(i)+two*bxhi
860 py6(i)=-pyc4(i)+two*byhi
861 pz6(i)=-pzc4(i)+two*bzhi
862 bxy6(i)=-bxhi
863 bxz6(i)=-bxhi
864 byx6(i)=-byhi
865 byz6(i)=-byhi
866 bzx6(i)=-bzhi
867 bzy6(i)=-bzhi
868 ENDDO
869 DO i=1,nel
870 bxhi=third*(px7(i)+pxc1(i))
871 byhi=third*(py7(i)+pyc1(i))
872 bzhi=third*(pz7(i)+pzc1(i))
873 px7(i)=-pxc1(i)+two*bxhi
874 py7(i)=-pyc1(i)+two*byhi
875 pz7(i)=-pzc1(i)+two*bzhi
876 bxy7(i)=-bxhi
877 bxz7(i)=-bxhi
878 byx7(i)=-byhi
879 byz7(i)=-byhi
880 bzx7(i)=-bzhi
881 bzy7(i)=-bzhi
882 ENDDO
883 DO i=1,nel
884 bxhi=third*(px8(i)+pxc2(i))
885 byhi=third*(py8(i)+pyc2(i))
886 bzhi=third*(pz8(i)+pzc2(i))
887 px8(i)=-pxc2(i)+two*bxhi
888 py8(i)=-pyc2(i)+two*byhi
889 pz8(i)=-pzc2(i)+two*bzhi
890 bxy8(i)=-bxhi
891 bxz8(i)=-bxhi
892 byx8(i)=-byhi
893 byz8(i)=-byhi
894 bzx8(i)=-bzhi
895 bzy8(i)=-bzhi
896 ENDDO
897 ENDIF
898 2000 FORMAT(/' ZERO OR NEGATIVE SUB-VOLUME : DELETE 3D-ELEMENT NB',
899 . i10/)
900 RETURN
901 2001 FORMAT(/' zero or negative solid sub-volume : element nb:',
902 . I10/)
903 END
#define min(a, b)
Definition macros.h:20
subroutine s8zderii3(offg, off, vol, ngl, ksi, eta, zeta, wi, pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, pzc1, pzc2, pzc3, pzc4, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, hx, hy, hz, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, pxy1, pxy2, pxy3, pxy4, pxy5, pxy6, pxy7, pxy8, pyx1, pyx2, pyx3, pyx4, pyx5, pyx6, pyx7, pyx8, pxz1, pxz2, pxz3, pxz4, pxz5, pxz6, pxz7, pxz8, pzx1, pzx2, pzx3, pzx4, pzx5, pzx6, pzx7, pzx8, pyz1, pyz2, pyz3, pyz4, pyz5, pyz6, pyz7, pyz8, pzy1, pzy2, pzy3, pzy4, pzy5, pzy6, pzy7, pzy8, bxy1, bxy2, bxy3, bxy4, bxy5, bxy6, bxy7, bxy8, byx1, byx2, byx3, byx4, byx5, byx6, byx7, byx8, bxz1, bxz2, bxz3, bxz4, bxz5, bxz6, bxz7, bxz8, bzx1, bzx2, bzx3, bzx4, bzx5, bzx6, bzx7, bzx8, byz1, byz2, byz3, byz4, byz5, byz6, byz7, byz8, bzy1, bzy2, bzy3, bzy4, bzy5, bzy6, bzy7, bzy8, cj1, cj2, cj3, cj4, cj5, cj6, cj7, cj8, cj9, jac4, jac5, jac6, jac7, jac8, jac9, smax, deltax, nu, icp, ideg, nel, mtn, ismstr, jhbe)
Definition s8zderii3.F:75