OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s20deri3.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!|| s20deri3 ../engine/source/elements/solid/solide20/s20deri3.F
25!||--- called by ------------------------------------------------------
26!|| s20forc3 ../engine/source/elements/solid/solide20/s20forc3.F
27!|| s20ke3 ../engine/source/elements/solid/solide20/s20ke3.F
28!||--- calls -----------------------------------------------------
29!|| ancmsg ../engine/source/output/message/message.F
30!|| arret ../engine/source/system/arret.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../engine/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE s20deri3(
35 1 NGL, OFF, R, S,
36 2 T, W, DNIDR, DNIDS,
37 3 DNIDT, DXDR, DYDR, DZDR,
38 4 DXDS, DYDS, DZDS, DXDT,
39 5 DYDT, DZDT, XX, YY,
40 6 ZZ, PX, PY, PZ,
41 7 VOL, DELTAX, KXX, NI,
42 8 VOLG, UL, IR, IS,
43 9 IT, VOLDP, NEL)
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE message_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52#include "comlock.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NEL
61 INTEGER NGL(*),IR,IS,IT
62C REAL
63 my_real
64 . R,S,T,W,
65 . DNIDR(20),DNIDS(20),DNIDT(20),DXDR(*),DYDR(*),DZDR(*),
66 . DXDS(*),DYDS(*),DZDS(*),DXDT(*),DYDT(*),DZDT(*),
67 . DRDX(MVSIZ), DSDX(MVSIZ), DTDX(MVSIZ),
68 . DRDY(MVSIZ), DSDY(MVSIZ), DTDY(MVSIZ),
69 . drdz(mvsiz), dsdz(mvsiz), dtdz(mvsiz),
70 . xx(mvsiz,20),yy(mvsiz,20),zz(mvsiz,20),
71 . px(mvsiz,20),py(mvsiz,20),pz(mvsiz,20),
72 . vol(*),off(*),deltax(*),volg(mvsiz) ,
73 . kxx(mvsiz,20),ni(20),ul(mvsiz,20)
74 double precision
75 . voldp(mvsiz),detdp
76C-----------------------------------------------
77C C o m m o n B l o c k s
78C-----------------------------------------------
79C-----------------------------------------------
80C L o c a l V a r i a b l e s
81C-----------------------------------------------
82 INTEGER I,N, ICOR
83 my_real
84 . d, aa, bb, det(mvsiz)
85C-----------------------------------------------
86C
87C
88C
89C ^ S _ T
90C | /|
91C | /
92C 7 | 18 /
93C O-----------|-----O-----------------O 6
94C /. | / /|
95C / . | / / |
96C / . | / |
97C / . | / / |
98C / . | / / |
99C 19 O . * + * * O |
100C / . | / / 17 |
101C / . / / |
102C / 15 O | + / O 14
103C / .# # / # / |
104C / . * 20 | * / * |
105C 8 O-----------------O-----------------O 5 |
106C | . | / | |
107C | @ . @ @ | |
108C R <------|- - -+ - - -#- - - - - # - - - - -#|- - -+ |
109C | . * / * | * |
110C | . 3 | 10 | |
111C | O......../.. .....O.....|...........O 2
112C | @ ' @ | @ | /
113C | ' # / # #| /
114C 16 O ' + | O 13 /
115C | ' | /
116C | 11 ' | | /
117C | O @ @ + @ | O
118C | ' | / 9
119C | ' | /
120C | ' | /
121C | ' | /
122C |' |/
123C O-----------------O-----------------O
124C 4 12 1
125C
126C
127C
128C
129C-----------------------------------------------
130C
131C
132C ^ S _ T
133C | /|
134C | /
135C | /
136C ( 7)==========|===(18)===============( 6)
137C //| | / //|
138C // | | / //||
139C // | | // ||
140C // | | / // ||
141C // | | / // ||
142C (19) | *- - - + - * - - - - -* (17) ||
143C // | /| | /| / /| // ||
144C // | / // ||
145C // (15)/ | |/ | + / // (14)
146C // |#- - - - - # - -/- - -# // ||
147C // | * - - /|- -*- - -/ -//* ||
148C ( 8)===============(20)==============( 5) ||
149C || / || / | / | / | / ||| | ||
150C || @- | - - - @ - - - - -@ || ||
151C R <-----||- - -+ -|- -# - - -| - # - - -|- -#|| - -+ ||
152C || | * - - /| - *- - -/-|| * ||
153C || | || / | / | |||/ ||
154C || ( 3)-------/--|---(10)----||---------( 2)
155C || @ /- / - - @ - -/ - - @ || //
156C || |/ #- - -/| - # - - -|- -#|| //
157C (16) / / + /| /(13) //
158C || /| | | || //
159C || / / / | / || //
160C || (11) @- - - - - @ - + - - -@ || ( 9)
161C || / || //
162C || / || //
163C || / || //
164C || / ||//
165C ||/ ||/
166C ( 4)===============(12)==============( 1)
167C
168C
169C
170C
171C
172C*/
173C-----------------------------------------------
174C
175C _
176C \
177C f = /_ (fi * Ni)
178C _
179C \
180C df/dx = /_ (fi * dNi/dx)
181C
182C dNi/dx = dNi/dr dr/dx + dNi/ds ds/dx + dNi/dt dt/dx
183C
184C-----------------------------------------------
185C _
186C \
187C x(r,s,t) = /_ (xi * Ni(r,s,t))
188C _
189C \
190C y(r,s,t) = /_ (yi * Ni(r,s,t))
191C _
192C \
193C z(r,s,t) = /_ zi * Ni(r,s,t))
194C
195C _
196C \
197C dx/dr = /_ (xi * dNi/dr)
198C ...
199C
200C [dx/dr dy/dr dz/dr]
201C [J] = |dx/ds dy/ds dz/ds|
202C [dx/dt dy/dt dz/dt]
203C
204C |dNi/dx| -1 |dNi/dr|
205C {dNi/dy} = [J] {dNi/ds}
206C |dNi/dz| |dNi/dt|
207C
208C
209C [dNi/dx 0 0 ]
210C | 0 dNi/dy 0 |
211C [Bi] = | 0 0 dNi/dz|
212C |dNi/dy dNi/dx 0 |
213C | 0 dNi/dz dNi/dy|
214C [dNi/dz 0 dNi/dx]
215C
216C
217C [dNi/dx 0 0 dNi/dy 0 dNi/dz]
218C [Bi]t = | 0 dNi/dy 0 dNi/dx dNi/dz 0 |
219C [ 0 0 dNi/dz 0 dNi/dy dNi/dx]
220C
221C [D11 D12 D12 0 0 0 ]
222C |D12 D11 D12 0 0 0 |
223C [D] = |D12 D12 D11 0 0 0 |
224C | 0 0 0 G 0 0 |
225C | 0 0 0 0 G 0 |
226C [ 0 0 0 0 0 G ]
227C
228C [D11*dNi/dx D12*dNi/dx D12*dNi/dx G*dNi/dy 0 G*dNi/dz]
229C [Bi]t [D] = |D12*dNi/dy D11*dNi/dy D12*dNi/dy G*dNi/dx G*dNi/dz 0 |
230C [D12*dNi/dz D12*dNi/dz D11*dNi/dz 0 G*dNi/dy G*dNi/dx]
231C _
232C / t
233C eps = [B] u sig = [D] eps F = _/ [B] sig dvol
234C
235C _
236C / t
237C [Kij] = _/ [Bi] [D] [Bj] dvol
238C
239C
240C
241C [ D11*dNi/dx*dNj/dx D12*dNi/dx*dNj/dy D12*dNi/dx*dNj/dz ]
242C | + G*dNi/dy*dNj/dy + G*dNi/dy*dNj/dx + G*dNi/dz*dNj/dx |
243C | + G*dNi/dz*dNj/dz |
244C [Kij] | D11*dNi/dy*dNj/dy D12*dNi/dy*dNj/dz |
245C ---- = | D12*dNi/dy*dNj/dx + G*dNi/dx*dNj/dx + G*dNi/dz*dNj/dy |
246C Volp | + G*dNi/dx*dNj/dy + G*dNi/dz*dNj/dz |
247C | D11*dNi/dz*dNj/dz |
248C | D12*dNi/dz*dNj/dx D12*dNi/dz*dNj/dy + G*dNi/dy*dNj/dy |
249C [ + G*dNi/dx*dNj/dz + G*dNi/dy*dNj/dz + G*dNi/dx*dNj/dx ]
250C
251C-----------------------------------------------
252C-----------------------------------------------------------------------
253C dx/dr; dx/ds; dx/dt
254C-----------------------------------------------------------------------
255 DO i=1,nel
256C
257 dxdr(i) = dnidr(1)*xx(i,1) + dnidr(2)*xx(i,2) + dnidr(3)*xx(i,3)
258 + + dnidr(4)*xx(i,4) + dnidr(5)*xx(i,5) + dnidr(6)*xx(i,6)
259 + + dnidr(7)*xx(i,7) + dnidr(8)*xx(i,8)
260 + + dnidr(9)*xx(i,9) + dnidr(10)*xx(i,10) + dnidr(11)*xx(i,11)
261 + + dnidr(12)*xx(i,12) + dnidr(13)*xx(i,13) + dnidr(14)*xx(i,14)
262 + + dnidr(15)*xx(i,15) + dnidr(16)*xx(i,16) + dnidr(17)*xx(i,17)
263 + + dnidr(18)*xx(i,18) + dnidr(19)*xx(i,19) + dnidr(20)*xx(i,20)
264C
265 dxds(i) = dnids(1)*xx(i,1) + dnids(2)*xx(i,2) + dnids(3)*xx(i,3)
266 + + dnids(4)*xx(i,4) + dnids(5)*xx(i,5) + dnids(6)*xx(i,6)
267 + + dnids(7)*xx(i,7) + dnids(8)*xx(i,8)
268 + + dnids(9)*xx(i,9) + dnids(10)*xx(i,10) + dnids(11)*xx(i,11)
269 + + dnids(12)*xx(i,12) + dnids(13)*xx(i,13) + dnids(14)*xx(i,14)
270 + + dnids(15)*xx(i,15) + dnids(16)*xx(i,16) + dnids(17)*xx(i,17)
271 + + dnids(18)*xx(i,18) + dnids(19)*xx(i,19) + dnids(20)*xx(i,20)
272C
273 dxdt(i) = dnidt(1)*xx(i,1) + dnidt(2)*xx(i,2) + dnidt(3)*xx(i,3)
274 + + dnidt(4)*xx(i,4) + dnidt(5)*xx(i,5) + dnidt(6)*xx(i,6)
275 + + dnidt(7)*xx(i,7) + dnidt(8)*xx(i,8)
276 + + dnidt(9)*xx(i,9) + dnidt(10)*xx(i,10) + dnidt(11)*xx(i,11)
277 + + dnidt(12)*xx(i,12) + dnidt(13)*xx(i,13) + dnidt(14)*xx(i,14)
278 + + dnidt(15)*xx(i,15) + dnidt(16)*xx(i,16) + dnidt(17)*xx(i,17)
279 + + dnidt(18)*xx(i,18) + dnidt(19)*xx(i,19) + dnidt(20)*xx(i,20)
280C-----------------------------------------------------------------------
281C dy/dr; dy/ds; dy/dt
282C-----------------------------------------------------------------------
283 dydr(i) = dnidr(1)*yy(i,1) + dnidr(2)*yy(i,2) + dnidr(3)*yy(i,3)
284 + + dnidr(4)*yy(i,4) + dnidr(5)*yy(i,5) + dnidr(6)*yy(i,6)
285 + + dnidr(7)*yy(i,7) + dnidr(8)*yy(i,8)
286 + + dnidr(9)*yy(i,9) + dnidr(10)*yy(i,10) + dnidr(11)*yy(i,11)
287 + + dnidr(12)*yy(i,12) + dnidr(13)*yy(i,13) + dnidr(14)*yy(i,14)
288 + + dnidr(15)*yy(i,15) + dnidr(16)*yy(i,16) + dnidr(17)*yy(i,17)
289 + + dnidr(18)*yy(i,18) + dnidr(19)*yy(i,19) + dnidr(20)*yy(i,20)
290C
291 dyds(i) = dnids(1)*yy(i,1) + dnids(2)*yy(i,2) + dnids(3)*yy(i,3)
292 + + dnids(4)*yy(i,4) + dnids(5)*yy(i,5) + dnids(6)*yy(i,6)
293 + + dnids(7)*yy(i,7) + dnids(8)*yy(i,8)
294 + + dnids(9)*yy(i,9) + dnids(10)*yy(i,10) + dnids(11)*yy(i,11)
295 + + dnids(12)*yy(i,12) + dnids(13)*yy(i,13) + dnids(14)*yy(i,14)
296 + + dnids(15)*yy(i,15) + dnids(16)*yy(i,16) + dnids(17)*yy(i,17)
297 + + dnids(18)*yy(i,18) + dnids(19)*yy(i,19) + dnids(20)*yy(i,20)
298C
299 dydt(i) = dnidt(1)*yy(i,1) + dnidt(2)*yy(i,2) + dnidt(3)*yy(i,3)
300 + + dnidt(4)*yy(i,4) + dnidt(5)*yy(i,5) + dnidt(6)*yy(i,6)
301 + + dnidt(7)*yy(i,7) + dnidt(8)*yy(i,8)
302 + + dnidt(9)*yy(i,9) + dnidt(10)*yy(i,10) + dnidt(11)*yy(i,11)
303 + + dnidt(12)*yy(i,12) + dnidt(13)*yy(i,13) + dnidt(14)*yy(i,14)
304 + + dnidt(15)*yy(i,15) + dnidt(16)*yy(i,16) + dnidt(17)*yy(i,17)
305 + + dnidt(18)*yy(i,18) + dnidt(19)*yy(i,19) + dnidt(20)*yy(i,20)
306C-----------------------------------------------------------------------
307C dz/dr; dz/ds; dz/dt
308C-----------------------------------------------------------------------
309 dzdr(i) = dnidr(1)*zz(i,1) + dnidr(2)*zz(i,2) + dnidr(3)*zz(i,3)
310 + + dnidr(4)*zz(i,4) + dnidr(5)*zz(i,5) + dnidr(6)*zz(i,6)
311 + + dnidr(7)*zz(i,7) + dnidr(8)*zz(i,8)
312 + + dnidr(9)*zz(i,9) + dnidr(10)*zz(i,10) + dnidr(11)*zz(i,11)
313 + + dnidr(12)*zz(i,12) + dnidr(13)*zz(i,13) + dnidr(14)*zz(i,14)
314 + + dnidr(15)*zz(i,15) + dnidr(16)*zz(i,16) + dnidr(17)*zz(i,17)
315 + + dnidr(18)*zz(i,18) + dnidr(19)*zz(i,19) + dnidr(20)*zz(i,20)
316C
317 dzds(i) = dnids(1)*zz(i,1) + dnids(2)*zz(i,2) + dnids(3)*zz(i,3)
318 + + dnids(4)*zz(i,4) + dnids(5)*zz(i,5) + dnids(6)*zz(i,6)
319 + + dnids(7)*zz(i,7) + dnids(8)*zz(i,8)
320 + + dnids(9)*zz(i,9) + dnids(10)*zz(i,10) + dnids(11)*zz(i,11)
321 + + dnids(12)*zz(i,12) + dnids(13)*zz(i,13) + dnids(14)*zz(i,14)
322 + + dnids(15)*zz(i,15) + dnids(16)*zz(i,16) + dnids(17)*zz(i,17)
323 + + dnids(18)*zz(i,18) + dnids(19)*zz(i,19) + dnids(20)*zz(i,20)
324C
325 dzdt(i) = dnidt(1)*zz(i,1) + dnidt(2)*zz(i,2) + dnidt(3)*zz(i,3)
326 + + dnidt(4)*zz(i,4) + dnidt(5)*zz(i,5) + dnidt(6)*zz(i,6)
327 + + dnidt(7)*zz(i,7) + dnidt(8)*zz(i,8)
328 + + dnidt(9)*zz(i,9) + dnidt(10)*zz(i,10) + dnidt(11)*zz(i,11)
329 + + dnidt(12)*zz(i,12) + dnidt(13)*zz(i,13) + dnidt(14)*zz(i,14)
330 + + dnidt(15)*zz(i,15) + dnidt(16)*zz(i,16) + dnidt(17)*zz(i,17)
331 + + dnidt(18)*zz(i,18) + dnidt(19)*zz(i,19) + dnidt(20)*zz(i,20)
332c print *,'dx y z/dr'
333c print *,DXDR(1),DYDR(1),DZDR(1)
334c print *,'dx y z/ds'
335c print *,DXDS(1),DYDS(1),DZDS(1)
336c print *,'dx y z/dt='
337c print *,DXDT(1),DYDT(1),DZDT(1)
338C-----------------------------------------------------------------------
339C -1
340C [J] Inversion du jacobien
341C-----------------------------------------------------------------------
342 drdx(i)=dyds(i)*dzdt(i)-dzds(i)*dydt(i)
343 drdy(i)=dzds(i)*dxdt(i)-dxds(i)*dzdt(i)
344 drdz(i)=dxds(i)*dydt(i)-dyds(i)*dxdt(i)
345C
346 dsdz(i)=dxdt(i)*dydr(i)-dydt(i)*dxdr(i)
347 dsdy(i)=dzdt(i)*dxdr(i)-dxdt(i)*dzdr(i)
348 dsdx(i)=dydt(i)*dzdr(i)-dzdt(i)*dydr(i)
349C
350 dtdx(i)=dydr(i)*dzds(i)-dzdr(i)*dyds(i)
351 dtdy(i)=dzdr(i)*dxds(i)-dxdr(i)*dzds(i)
352 dtdz(i)=dxdr(i)*dyds(i)-dydr(i)*dxds(i)
353C
354 detdp = dxdr(i) * drdx(i)
355 . + dydr(i) * drdy(i)
356 . + dzdr(i) * drdz(i)
357 det(i) = detdp
358 voldp(i) = w * detdp
359 vol(i) = voldp(i)
360C
361 ENDDO
362C
363C IF(IDTMIN(1)==1)THEN
364C ...
365C ENDIF
366C
367C
368 icor=0
369 DO i=1,nel
370 IF(off(i)==zero)THEN
371 vol(i)=one
372 voldp(i) = one
373 ELSEIF(vol(i)<=zero)THEN
374 icor=1
375 ENDIF
376 ENDDO
377 IF(icor/=0)THEN
378 DO i=1,nel
379 IF(vol(i)<=zero)THEN
380 CALL ancmsg(msgid=171,anmode=aninfo,
381 . i1=ngl(i),i2=ir,i3=is,i4=it)
382 CALL arret(2)
383 ENDIF
384 ENDDO
385 ENDIF
386C
387 DO i=1,nel
388C-----------------------------------------------------------------------
389C -1 Inversion du jacobien suite
390C [J] et repere local r,s,t
391C-----------------------------------------------------------------------
392 d = one/det(i)
393 drdx(i)=d*drdx(i)
394 dsdx(i)=d*dsdx(i)
395 dtdx(i)=d*dtdx(i)
396C
397 drdy(i)=d*drdy(i)
398 dsdy(i)=d*dsdy(i)
399 dtdy(i)=d*dtdy(i)
400C
401 drdz(i)=d*drdz(i)
402 dsdz(i)=d*dsdz(i)
403 dtdz(i)=d*dtdz(i)
404C-----------------------------------------------------------------------
405C |dNi/dx| -1 |dNi/dr|
406C {dNi/dy} = [J] {dNi/ds}
407C |dNi/dz| |dNi/dt|
408C-----------------------------------------------------------------------
409 px(i,1) = dnidr(1)*drdx(i) + dnids(1)*dsdx(i) + dnidt(1)*dtdx(i)
410 px(i,2) = dnidr(2)*drdx(i) + dnids(2)*dsdx(i) + dnidt(2)*dtdx(i)
411 px(i,3) = dnidr(3)*drdx(i) + dnids(3)*dsdx(i) + dnidt(3)*dtdx(i)
412 px(i,4) = dnidr(4)*drdx(i) + dnids(4)*dsdx(i) + dnidt(4)*dtdx(i)
413 px(i,5) = dnidr(5)*drdx(i) + dnids(5)*dsdx(i) + dnidt(5)*dtdx(i)
414 px(i,6) = dnidr(6)*drdx(i) + dnids(6)*dsdx(i) + dnidt(6)*dtdx(i)
415 px(i,7) = dnidr(7)*drdx(i) + dnids(7)*dsdx(i) + dnidt(7)*dtdx(i)
416 px(i,8) = dnidr(8)*drdx(i) + dnids(8)*dsdx(i) + dnidt(8)*dtdx(i)
417 px(i,9) = dnidr(9)*drdx(i) + dnids(9)*dsdx(i) + dnidt(9)*dtdx(i)
418 px(i,10)= dnidr(10)*drdx(i)+ dnids(10)*dsdx(i)+dnidt(10)*dtdx(i)
419 px(i,11)= dnidr(11)*drdx(i)+ dnids(11)*dsdx(i)+dnidt(11)*dtdx(i)
420 px(i,12)= dnidr(12)*drdx(i)+ dnids(12)*dsdx(i)+dnidt(12)*dtdx(i)
421 px(i,13)= dnidr(13)*drdx(i)+ dnids(13)*dsdx(i)+dnidt(13)*dtdx(i)
422 px(i,14)= dnidr(14)*drdx(i)+ dnids(14)*dsdx(i)+dnidt(14)*dtdx(i)
423 px(i,15)= dnidr(15)*drdx(i)+ dnids(15)*dsdx(i)+dnidt(15)*dtdx(i)
424 px(i,16)= dnidr(16)*drdx(i)+ dnids(16)*dsdx(i)+dnidt(16)*dtdx(i)
425 px(i,17)= dnidr(17)*drdx(i)+ dnids(17)*dsdx(i)+dnidt(17)*dtdx(i)
426 px(i,18)= dnidr(18)*drdx(i)+ dnids(18)*dsdx(i)+dnidt(18)*dtdx(i)
427 px(i,19)= dnidr(19)*drdx(i)+ dnids(19)*dsdx(i)+dnidt(19)*dtdx(i)
428 px(i,20)= dnidr(20)*drdx(i)+ dnids(20)*dsdx(i)+dnidt(20)*dtdx(i)
429C
430 py(i,1) = dnidr(1)*drdy(i) + dnids(1)*dsdy(i) + dnidt(1)*dtdy(i)
431 pz(i,1) = dnidr(1)*drdz(i) + dnids(1)*dsdz(i) + dnidt(1)*dtdz(i)
432 py(i,2) = dnidr(2)*drdy(i) + dnids(2)*dsdy(i) + dnidt(2)*dtdy(i)
433 py(i,3) = dnidr(3)*drdy(i) + dnids(3)*dsdy(i) + dnidt(3)*dtdy(i)
434 py(i,4) = dnidr(4)*drdy(i) + dnids(4)*dsdy(i) + dnidt(4)*dtdy(i)
435 py(i,5) = dnidr(5)*drdy(i) + dnids(5)*dsdy(i) + dnidt(5)*dtdy(i)
436 py(i,6) = dnidr(6)*drdy(i) + dnids(6)*dsdy(i) + dnidt(6)*dtdy(i)
437 py(i,7) = dnidr(7)*drdy(i) + dnids(7)*dsdy(i) + dnidt(7)*dtdy(i)
438 py(i,8) = dnidr(8)*drdy(i) + dnids(8)*dsdy(i) + dnidt(8)*dtdy(i)
439 py(i,9) = dnidr(9)*drdy(i) + dnids(9)*dsdy(i) + dnidt(9)*dtdy(i)
440 py(i,10)= dnidr(10)*drdy(i)+ dnids(10)*dsdy(i)+dnidt(10)*dtdy(i)
441 py(i,11)= dnidr(11)*drdy(i)+ dnids(11)*dsdy(i)+dnidt(11)*dtdy(i)
442 py(i,12)= dnidr(12)*drdy(i)+ dnids(12)*dsdy(i)+dnidt(12)*dtdy(i)
443 py(i,13)= dnidr(13)*drdy(i)+ dnids(13)*dsdy(i)+dnidt(13)*dtdy(i)
444 py(i,14)= dnidr(14)*drdy(i)+ dnids(14)*dsdy(i)+dnidt(14)*dtdy(i)
445 py(i,15)= dnidr(15)*drdy(i)+ dnids(15)*dsdy(i)+dnidt(15)*dtdy(i)
446 py(i,16)= dnidr(16)*drdy(i)+ dnids(16)*dsdy(i)+dnidt(16)*dtdy(i)
447 py(i,17)= dnidr(17)*drdy(i)+ dnids(17)*dsdy(i)+dnidt(17)*dtdy(i)
448 py(i,18)= dnidr(18)*drdy(i)+ dnids(18)*dsdy(i)+dnidt(18)*dtdy(i)
449 py(i,19)= dnidr(19)*drdy(i)+ dnids(19)*dsdy(i)+dnidt(19)*dtdy(i)
450 py(i,20)= dnidr(20)*drdy(i)+ dnids(20)*dsdy(i)+dnidt(20)*dtdy(i)
451C
452 pz(i,1) = dnidr(1)*drdz(i) + dnids(1)*dsdz(i) + dnidt(1)*dtdz(i)
453 pz(i,2) = dnidr(2)*drdz(i) + dnids(2)*dsdz(i) + dnidt(2)*dtdz(i)
454 pz(i,3) = dnidr(3)*drdz(i) + dnids(3)*dsdz(i) + dnidt(3)*dtdz(i)
455 pz(i,4) = dnidr(4)*drdz(i) + dnids(4)*dsdz(i) + dnidt(4)*dtdz(i)
456 pz(i,5) = dnidr(5)*drdz(i) + dnids(5)*dsdz(i) + dnidt(5)*dtdz(i)
457 pz(i,6) = dnidr(6)*drdz(i) + dnids(6)*dsdz(i) + dnidt(6)*dtdz(i)
458 pz(i,7) = dnidr(7)*drdz(i) + dnids(7)*dsdz(i) + dnidt(7)*dtdz(i)
459 pz(i,8) = dnidr(8)*drdz(i) + dnids(8)*dsdz(i) + dnidt(8)*dtdz(i)
460 pz(i,9) = dnidr(9)*drdz(i) + dnids(9)*dsdz(i) + dnidt(9)*dtdz(i)
461 pz(i,10)= dnidr(10)*drdz(i)+ dnids(10)*dsdz(i)+dnidt(10)*dtdz(i)
462 pz(i,11)= dnidr(11)*drdz(i)+ dnids(11)*dsdz(i)+dnidt(11)*dtdz(i)
463 pz(i,12)= dnidr(12)*drdz(i)+ dnids(12)*dsdz(i)+dnidt(12)*dtdz(i)
464 pz(i,13)= dnidr(13)*drdz(i)+ dnids(13)*dsdz(i)+dnidt(13)*dtdz(i)
465 pz(i,14)= dnidr(14)*drdz(i)+ dnids(14)*dsdz(i)+dnidt(14)*dtdz(i)
466 pz(i,15)= dnidr(15)*drdz(i)+ dnids(15)*dsdz(i)+dnidt(15)*dtdz(i)
467 pz(i,16)= dnidr(16)*drdz(i)+ dnids(16)*dsdz(i)+dnidt(16)*dtdz(i)
468 pz(i,17)= dnidr(17)*drdz(i)+ dnids(17)*dsdz(i)+dnidt(17)*dtdz(i)
469 pz(i,18)= dnidr(18)*drdz(i)+ dnids(18)*dsdz(i)+dnidt(18)*dtdz(i)
470 pz(i,19)= dnidr(19)*drdz(i)+ dnids(19)*dsdz(i)+dnidt(19)*dtdz(i)
471 pz(i,20)= dnidr(20)*drdz(i)+ dnids(20)*dsdz(i)+dnidt(20)*dtdz(i)
472C
473 ENDDO
474C
475C
476C
477 DO n=1,20
478 DO i=1,nel
479 kxx(i,n) = vol(i)*
480 . (px(i,n)*px(i,n) + py(i,n)*py(i,n) + pz(i,n)*pz(i,n))
481 ul(i,n) = ul(i,n) + kxx(i,n)
482 ENDDO
483 ENDDO
484 DO i=1,nel
485 volg(i) =volg(i) + vol(i)
486 ENDDO
487C
488c AA = 0
489c DO N=1,20
490c AA = AA + NI(N)*NI(N)
491c ENDDO
492c DO I=1,NEL
493c BB = 1.E20
494c DO N=1,20
495c BB = MIN(BB,NI(N)*NI(N)/UL(I,N))
496c ENDDO
497c DELTAX(I) = SQRT(2.*BB/AA)
498c ENDDO
499C
500C
501 2000 FORMAT(/' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
502C
503 RETURN
504 END
subroutine s20deri3(ngl, off, r, s, t, w, dnidr, dnids, dnidt, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, xx, yy, zz, px, py, pz, vol, deltax, kxx, ni, volg, ul, ir, is, it, voldp, nel)
Definition s20deri3.F:44
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)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87