OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cbilan.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!|| cbilan ../engine/source/elements/shell/coque/cbilan.F
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
28!|| cforc3_crk ../engine/source/elements/xfem/cforc3_crk.F
29!|| czforc3 ../engine/source/elements/shell/coquez/czforc3.F
30!|| czforc3_crk ../engine/source/elements/xfem/czforc3_crk.F
31!||--- calls -----------------------------------------------------
32!|| grelem_sav ../engine/source/output/th/grelem_sav.F
33!|| sensor_energy_bilan ../engine/source/tools/sensor/sensor_energy_bilan.F
34!||--- uses -----------------------------------------------------
35!|| sensor_mod ../common_source/modules/sensor_mod.F90
36!||====================================================================
37 SUBROUTINE cbilan(
38 1 JFT, JLT, PM, V,
39 2 IXC, THK, EINT, PARTSAV,
40 3 AREA, MAT, IPARTC, X,
41 4 VR, VOL0, VOL00, THK0,
42 5 THK02, IFLA, OFF, NFT1,
43 6 GRESAV, GRTH, IGRTH, VL1,
44 7 VL2, VL3, VL4, VRL1,
45 8 VRL2, VRL3, VRL4, X1G,
46 9 X2G, X3G, X4G, Y1G,
47 A Y2G, Y3G, Y4G, Z1G,
48 B Z2G, Z3G, Z4G, IXFEM,
49 C IEXPAN, EINTTH, ITASK, GVOL,
50 D ACTIFXFEM,IGRE, SENSORS, NEL,
51 E G_WPLA ,WPLA)
52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE sensor_mod
56C-----------------------------------------------
57C I m p l i c i t T y p e s
58C-----------------------------------------------
59#include "implicit_f.inc"
60C-----------------------------------------------
61C G l o b a l P a r a m e t e r s
62C-----------------------------------------------
63#include "mvsiz_p.inc"
64C-----------------------------------------------
65C C o m m o n B l o c k s
66C-----------------------------------------------
67#include "param_c.inc"
68#include "com_xfem1.inc"
69C-----------------------------------------------
70C D u m m y A r g u m e n t s
71C-----------------------------------------------
72 INTEGER, INTENT(IN) :: IGRE
73 INTEGER IXC(NIXC,*),MAT(MVSIZ), JFT, JLT,IFLA,IEXPAN,
74 . IPARTC(*),NFT1,GRTH(*),IGRTH(*),IXFEM,ITASK
75 INTEGER, INTENT(IN) :: ACTIFXFEM
76C REAL
77 my_real
78 . PM(NPROPM,*), V(3,*), THK(*), EINT(JLT,2),
79 . PARTSAV(NPSAV,*), AREA(*),X(3,*),VR(3,*) ,VOL0(*),VOL00(*),
80 . THK0(*), THK02(*),OFF(*),
81 . GRESAV(*),EINTTH(*)
82 my_real
83 . X1G(MVSIZ), X2G(MVSIZ), X3G(MVSIZ), X4G(MVSIZ),
84 . Y1G(MVSIZ), Y2G(MVSIZ), Y3G(MVSIZ), Y4G(MVSIZ),
85 . Z1G(MVSIZ), Z2G(MVSIZ), Z3G(MVSIZ), Z4G(MVSIZ),
86 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
87 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3)
88 my_real, INTENT(IN) :: gvol(mvsiz)
89 type (sensors_),INTENT(INOUT) :: SENSORS
90 INTEGER,INTENT(IN) :: NEL,G_WPLA
91 my_real, DIMENSION(NEL*G_WPLA), INTENT(IN) :: wpla
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95 INTEGER I, MX, II, J, IC, JST(MVSIZ+1),FLAG,
96 . ixctmp2,ixctmp3,ixctmp4,ixctmp5,ijk
97C REAL
98 my_real
99 . in25,xx,yy,zz,xy,yz,zx,va2, inel,
100 . vxa(mvsiz), vya(mvsiz), vza(mvsiz),
101 . xmas(mvsiz), rho, ei(mvsiz),rei(mvsiz),rek(mvsiz),
102 . ek(mvsiz), xm(mvsiz), ym(mvsiz), zm(mvsiz), xmas25(mvsiz),
103 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
104 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
105 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
106 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
107 . rbidon(1)
108 INTEGER :: K,IPART,LOCAL_INDEX
109 my_real, DIMENSION(MVSIZ,2) :: fstparit
110C-----------------------------------------------
111 flag = 0
112 rbidon = zero
113
114 mx = mat(jft)
115 rho=pm(1,mx)
116C-----add available to output XCG,... with other shells than belytschko
117 IF(ifla>1)THEN
118 DO i=jft,jlt
119 ixctmp2=ixc(2,i)
120 ixctmp3=ixc(3,i)
121 ixctmp4=ixc(4,i)
122 ixctmp5=ixc(5,i)
123C----------------------------
124 x1g(i)=x(1,ixctmp2)
125 y1g(i)=x(2,ixctmp2)
126 z1g(i)=x(3,ixctmp2)
127 x2g(i)=x(1,ixctmp3)
128 y2g(i)=x(2,ixctmp3)
129 z2g(i)=x(3,ixctmp3)
130 x3g(i)=x(1,ixctmp4)
131 y3g(i)=x(2,ixctmp4)
132 z3g(i)=x(3,ixctmp4)
133 x4g(i)=x(1,ixctmp5)
134 y4g(i)=x(2,ixctmp5)
135 z4g(i)=x(3,ixctmp5)
136 vl1(i,1)=v(1,ixctmp2)
137 vl1(i,2)=v(2,ixctmp2)
138 vl1(i,3)=v(3,ixctmp2)
139 vl2(i,1)=v(1,ixctmp3)
140 vl2(i,2)=v(2,ixctmp3)
141 vl2(i,3)=v(3,ixctmp3)
142 vl3(i,1)=v(1,ixctmp4)
143 vl3(i,2)=v(2,ixctmp4)
144 vl3(i,3)=v(3,ixctmp4)
145 vl4(i,1)=v(1,ixctmp5)
146 vl4(i,2)=v(2,ixctmp5)
147 vl4(i,3)=v(3,ixctmp5)
148 vrl1(i,1)=vr(1,ixctmp2)
149 vrl1(i,2)=vr(2,ixctmp2)
150 vrl1(i,3)=vr(3,ixctmp2)
151 vrl2(i,1)=vr(1,ixctmp3)
152 vrl2(i,2)=vr(2,ixctmp3)
153 vrl2(i,3)=vr(3,ixctmp3)
154 vrl3(i,1)=vr(1,ixctmp4)
155 vrl3(i,2)=vr(2,ixctmp4)
156 vrl3(i,3)=vr(3,ixctmp4)
157 vrl4(i,1)=vr(1,ixctmp5)
158 vrl4(i,2)=vr(2,ixctmp5)
159 vrl4(i,3)=vr(3,ixctmp5)
160 END DO
161 END IF
162C
163 DO i=jft,jlt
164 vxa(i)=vl1(i,1)+vl2(i,1)+vl3(i,1)+vl4(i,1)
165 vya(i)=vl1(i,2)+vl2(i,2)+vl3(i,2)+vl4(i,2)
166 vza(i)=vl1(i,3)+vl2(i,3)+vl3(i,3)+vl4(i,3)
167 ENDDO
168
169C
170 DO i=jft,jlt
171 xmas(i)=rho*gvol(i)
172 ENDDO
173C
174 DO i=jft,jlt
175 va2 = vl1(i,1)*vl1(i,1)+vl2(i,1)*vl2(i,1)
176 2 +vl3(i,1)*vl3(i,1)+vl4(i,1)*vl4(i,1)
177 3 +vl1(i,2)*vl1(i,2)+vl2(i,2)*vl2(i,2)
178 4 +vl3(i,2)*vl3(i,2)+vl4(i,2)*vl4(i,2)
179 5 +vl1(i,3)*vl1(i,3)+vl2(i,3)*vl2(i,3)
180 6 +vl3(i,3)*vl3(i,3)+vl4(i,3)*vl4(i,3)
181 ei(i)= eint(i,1) + eint(i,2)
182 ek(i)= xmas(i)*va2*one_over_8
183 xmas25(i)= xmas(i)*fourth
184 xm(i)= xmas25(i)*vxa(i)
185 ym(i)= xmas25(i)*vya(i)
186 zm(i)= xmas25(i)*vza(i)
187 ENDDO
188C
189C !!!!!!!!!! VOL0,VOL00,THK0,THK02,X,VR ne sont transmis que par
190C CFORC3 et pas par CSUBC3 et CZFORC3 (IFLA=0) !!!!!!!
191 IF(ifla/=0.AND.npsav>=21)THEN
192 DO i=jft,jlt
193 xx= x1g(i)+x2g(i)+x3g(i)+x4g(i)
194 yy= y1g(i)+y2g(i)+y3g(i)+y4g(i)
195 zz= z1g(i)+z2g(i)+z3g(i)+z4g(i)
196 xcg(i)= xmas25(i)*xx
197 ycg(i)= xmas25(i)*yy
198 zcg(i)= xmas25(i)*zz
199C
200 in25 = xmas25(i)*(thk02(i)+area(i))*one_over_12
201 inel = four*in25
202 xx = fourth*xx
203 yy = fourth*yy
204 zz = fourth*zz
205 ixy(i) = -xcg(i)*yy
206 iyz(i) = -ycg(i)*zz
207 izx(i) = -zcg(i)*xx
208 xx = xcg(i)*xx
209 yy = ycg(i)*yy
210 zz = zcg(i)*zz
211 ixx(i)= inel + yy + zz
212 iyy(i)= inel + zz + xx
213 izz(i)= inel + xx + yy
214 vxa(i)=fourth*vxa(i)
215 vya(i)=fourth*vya(i)
216 vza(i)=fourth*vza(i)
217 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
218 . +in25*
219 . (vrl1(i,1)+vrl2(i,1)+vrl3(i,1)+vrl4(i,1))
220 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
221 . +in25*
222 . (vrl1(i,2)+vrl2(i,2)+vrl3(i,2)+vrl4(i,2))
223 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
224 . + in25*
225 . (vrl1(i,3)+vrl2(i,3)+vrl3(i,3)+vrl4(i,3))
226 va2 = vrl1(i,1)*vrl1(i,1)+vrl2(i,1)*vrl2(i,1)
227 2 + vrl3(i,1)*vrl3(i,1)+vrl4(i,1)*vrl4(i,1)
228 3 + vrl1(i,2)*vrl1(i,2)+vrl2(i,2)*vrl2(i,2)
229 4 + vrl3(i,2)*vrl3(i,2)+vrl4(i,2)*vrl4(i,2)
230 5 + vrl1(i,3)*vrl1(i,3)+vrl2(i,3)*vrl2(i,3)
231 6 + vrl3(i,3)*vrl3(i,3)+vrl4(i,3)*vrl4(i,3)
232 rei(i)= eint(i,2)
233 rek(i)= in25*va2*half
234 ENDDO
235C
236 IF (igre /= 0) THEN
237 flag = 1
238 CALL grelem_sav(jft ,jlt ,gresav,igrth ,grth ,
239 2 off ,ei ,ek ,xm ,ym ,
240 3 zm ,xmas ,xcg ,ycg ,zcg ,
241 4 xxm ,yym ,zzm ,ixx ,iyy ,
242 5 izz ,ixy ,iyz ,izx ,rei ,
243 6 rek ,flag)
244 ENDIF
245C
246 ic=1
247 jst(ic)=jft
248 DO j=jft+1,jlt
249 IF (ipartc(j)/=ipartc(j-1)) THEN
250 ic=ic+1
251 jst(ic)=j
252 ENDIF
253 ENDDO
254 jst(ic+1)=jlt+1
255 IF (ic==1) THEN
256 mx = ipartc(jft)
257 DO i=jft,jlt
258 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
259 IF(off(i)/=zero)THEN
260 partsav(1,mx)=partsav(1,mx) + ei(i)
261 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
262 partsav(2,mx)=partsav(2,mx) + ek(i)
263 partsav(3,mx)=partsav(3,mx) + xm(i)
264 partsav(4,mx)=partsav(4,mx) + ym(i)
265 partsav(5,mx)=partsav(5,mx) + zm(i)
266 ENDIF
267 ELSE
268 partsav(1,mx)=partsav(1,mx) + ei(i)
269 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
270 partsav(2,mx)=partsav(2,mx) + ek(i)
271 partsav(3,mx)=partsav(3,mx) + xm(i)
272 partsav(4,mx)=partsav(4,mx) + ym(i)
273 partsav(5,mx)=partsav(5,mx) + zm(i)
274 ENDIF
275 IF(off(i)/=zero)THEN
276 partsav(6,mx)=partsav(6,mx) + xmas(i)
277C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
278 ENDIF
279 partsav(9,mx) =partsav(9,mx) + xcg(i)
280 partsav(10,mx)=partsav(10,mx) + ycg(i)
281 partsav(11,mx)=partsav(11,mx) + zcg(i)
282 partsav(12,mx)=partsav(12,mx) + xxm(i)
283 partsav(13,mx)=partsav(13,mx) + yym(i)
284 partsav(14,mx)=partsav(14,mx) + zzm(i)
285 partsav(15,mx)=partsav(15,mx) + ixx(i)
286 partsav(16,mx)=partsav(16,mx) + iyy(i)
287 partsav(17,mx)=partsav(17,mx) + izz(i)
288 partsav(18,mx)=partsav(18,mx) + ixy(i)
289 partsav(19,mx)=partsav(19,mx) + iyz(i)
290 partsav(20,mx)=partsav(20,mx) + izx(i)
291 partsav(21,mx)=partsav(21,mx) + rei(i)
292 partsav(22,mx)=partsav(22,mx) + rek(i)
293 ENDDO
294 ELSE
295C
296 DO ii=1,ic
297 mx=ipartc(jst(ii))
298 IF (jst(ii+1)-jst(ii)>15) THEN
299 DO i=jst(ii),jst(ii+1)-1
300 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
301 IF(off(i)/=zero)THEN
302 partsav(1,mx)=partsav(1,mx) + ei(i)
303 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
304 partsav(2,mx)=partsav(2,mx) + ek(i)
305 partsav(3,mx)=partsav(3,mx) + xm(i)
306 partsav(4,mx)=partsav(4,mx) + ym(i)
307 partsav(5,mx)=partsav(5,mx) + zm(i)
308 ENDIF
309 ELSE
310 partsav(1,mx)=partsav(1,mx) + ei(i)
311 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
312 partsav(2,mx)=partsav(2,mx) + ek(i)
313 partsav(3,mx)=partsav(3,mx) + xm(i)
314 partsav(4,mx)=partsav(4,mx) + ym(i)
315 partsav(5,mx)=partsav(5,mx) + zm(i)
316 ENDIF
317 IF(off(i)/=zero)THEN
318 partsav(6,mx)=partsav(6,mx) + xmas(i)
319C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
320 ENDIF
321 partsav(9,mx) =partsav(9,mx) + xcg(i)
322 partsav(10,mx)=partsav(10,mx) + ycg(i)
323 partsav(11,mx)=partsav(11,mx) + zcg(i)
324 partsav(12,mx)=partsav(12,mx) + xxm(i)
325 partsav(13,mx)=partsav(13,mx) + yym(i)
326 partsav(14,mx)=partsav(14,mx) + zzm(i)
327 partsav(15,mx)=partsav(15,mx) + ixx(i)
328 partsav(16,mx)=partsav(16,mx) + iyy(i)
329 partsav(17,mx)=partsav(17,mx) + izz(i)
330 partsav(18,mx)=partsav(18,mx) + ixy(i)
331 partsav(19,mx)=partsav(19,mx) + iyz(i)
332 partsav(20,mx)=partsav(20,mx) + izx(i)
333 partsav(21,mx)=partsav(21,mx) + rei(i)
334 partsav(22,mx)=partsav(22,mx) + rek(i)
335 ENDDO
336 ELSE
337 DO i=jst(ii),jst(ii+1)-1
338 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
339 IF (off(i)/=zero) THEN
340 partsav(1,mx)=partsav(1,mx) + ei(i)
341 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
342 partsav(2,mx)=partsav(2,mx) + ek(i)
343 partsav(3,mx)=partsav(3,mx) + xm(i)
344 partsav(4,mx)=partsav(4,mx) + ym(i)
345 partsav(5,mx)=partsav(5,mx) + zm(i)
346 ENDIF
347 ELSE
348 partsav(1,mx)=partsav(1,mx) + ei(i)
349 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
350 partsav(2,mx)=partsav(2,mx) + ek(i)
351 partsav(3,mx)=partsav(3,mx) + xm(i)
352 partsav(4,mx)=partsav(4,mx) + ym(i)
353 partsav(5,mx)=partsav(5,mx) + zm(i)
354 ENDIF
355 IF(off(i)/=zero)THEN
356 partsav(6,mx)=partsav(6,mx) + xmas(i)
357C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
358 ENDIF
359 partsav(9,mx) =partsav(9,mx) + xcg(i)
360 partsav(10,mx)=partsav(10,mx) + ycg(i)
361 partsav(11,mx)=partsav(11,mx) + zcg(i)
362 partsav(12,mx)=partsav(12,mx) + xxm(i)
363 partsav(13,mx)=partsav(13,mx) + yym(i)
364 partsav(14,mx)=partsav(14,mx) + zzm(i)
365 partsav(15,mx)=partsav(15,mx) + ixx(i)
366 partsav(16,mx)=partsav(16,mx) + iyy(i)
367 partsav(17,mx)=partsav(17,mx) + izz(i)
368 partsav(18,mx)=partsav(18,mx) + ixy(i)
369 partsav(19,mx)=partsav(19,mx) + iyz(i)
370 partsav(20,mx)=partsav(20,mx) + izx(i)
371 partsav(21,mx)=partsav(21,mx) + rei(i)
372 partsav(22,mx)=partsav(22,mx) + rek(i)
373 ENDDO
374 ENDIF
375 ENDDO
376 ENDIF
377 ELSE
378 IF (igre /= 0) THEN
379 flag = 0
380 CALL grelem_sav(jft ,jlt ,gresav,igrth ,grth ,
381 2 off ,ei ,ek ,xm ,ym ,
382 3 zm ,xmas ,rbidon,rbidon,rbidon,
383 4 rbidon,rbidon,rbidon,rbidon,rbidon,
384 5 rbidon,rbidon,rbidon,rbidon,rbidon,
385 6 rbidon,flag)
386 ENDIF
387 ic=1
388 jst(ic)=jft
389 DO j=jft+1,jlt
390 IF (ipartc(j)/=ipartc(j-1)) THEN
391 ic=ic+1
392 jst(ic)=j
393 ENDIF
394 ENDDO
395 jst(ic+1)=jlt+1
396 IF (ic==1) THEN
397 mx = ipartc(jft)
398 DO i=jft,jlt
399 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
400 IF (off(i)/=zero)THEN
401 partsav(1,mx)=partsav(1,mx) + ei(i)
402 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
403 partsav(2,mx)=partsav(2,mx) + ek(i)
404 partsav(3,mx)=partsav(3,mx) + xm(i)
405 partsav(4,mx)=partsav(4,mx) + ym(i)
406 partsav(5,mx)=partsav(5,mx) + zm(i)
407 ENDIF
408 ELSE
409 partsav(1,mx)=partsav(1,mx) + ei(i)
410 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
411 partsav(2,mx)=partsav(2,mx) + ek(i)
412 partsav(3,mx)=partsav(3,mx) + xm(i)
413 partsav(4,mx)=partsav(4,mx) + ym(i)
414 partsav(5,mx)=partsav(5,mx) + zm(i)
415 ENDIF
416 IF(off(i)/=zero)THEN
417 partsav(6,mx)=partsav(6,mx) + xmas(i)
418C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
419 ENDIF
420 ENDDO
421 ELSE
422 DO ii=1,ic
423 mx=ipartc(jst(ii))
424 IF (jst(ii+1)-jst(ii)>15) THEN
425 DO i=jst(ii),jst(ii+1)-1
426 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
427 IF(off(i)/=zero)THEN
428 partsav(1,mx)=partsav(1,mx) + ei(i)
429 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
430 partsav(2,mx)=partsav(2,mx) + ek(i)
431 partsav(3,mx)=partsav(3,mx) + xm(i)
432 partsav(4,mx)=partsav(4,mx) + ym(i)
433 partsav(5,mx)=partsav(5,mx) + zm(i)
434 ENDIF
435 ELSE
436 partsav(1,mx)=partsav(1,mx) + ei(i)
437 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
438 partsav(2,mx)=partsav(2,mx) + ek(i)
439 partsav(3,mx)=partsav(3,mx) + xm(i)
440 partsav(4,mx)=partsav(4,mx) + ym(i)
441 partsav(5,mx)=partsav(5,mx) + zm(i)
442 ENDIF
443 IF(off(i)/=zero)THEN
444 partsav(6,mx)=partsav(6,mx) + xmas(i)
445C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
446 ENDIF
447 ENDDO
448 ELSE
449 DO i=jst(ii),jst(ii+1)-1
450 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0) THEN
451 IF(off(i)/=zero)THEN
452 partsav(1,mx)=partsav(1,mx) + ei(i)
453 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
454 partsav(2,mx)=partsav(2,mx) + ek(i)
455 partsav(3,mx)=partsav(3,mx) + xm(i)
456 partsav(4,mx)=partsav(4,mx) + ym(i)
457 partsav(5,mx)=partsav(5,mx) + zm(i)
458 ENDIF
459 ELSE
460 partsav(1,mx)=partsav(1,mx) + ei(i)
461 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
462 partsav(2,mx)=partsav(2,mx) + ek(i)
463 partsav(3,mx)=partsav(3,mx) + xm(i)
464 partsav(4,mx)=partsav(4,mx) + ym(i)
465 partsav(5,mx)=partsav(5,mx) + zm(i)
466 ENDIF
467 IF(off(i)/=zero)THEN
468 partsav(6,mx)=partsav(6,mx) + xmas(i)
469C PARTSAV(8,MX)=PARTSAV(8,MX) + EHOU(I)
470 ENDIF
471 ENDDO
472 ENDIF
473 ENDDO
474 ENDIF
475 ENDIF
476C
477 IF(iexpan > 0) THEN
478 DO i=jft,jlt
479 mx = ipartc(i)
480 IF(off(i)/=zero)THEN
481 partsav(27,mx)=partsav(27,mx) + eintth(i)
482 ENDIF
483 ENDDO
484 ENDIF
485C
486 DO i = jft,jlt
487 mx = ipartc(i)
488 IF (off(i)==zero) THEN
489 partsav(25,mx) = partsav(25,mx) + one
490 ENDIF
491 ENDDO
492C
493 CALL sensor_energy_bilan(jft,jlt,ei,ek,off,ipartc,itask,sensors)
494C---
495 RETURN
496 END
subroutine cbilan(jft, jlt, pm, v, ixc, thk, eint, partsav, area, mat, ipartc, x, vr, vol0, vol00, thk0, thk02, ifla, off, nft1, gresav, grth, igrth, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, ixfem, iexpan, eintth, itask, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
Definition cbilan.F:52
subroutine grelem_sav(jft, jlt, gresav, igrth, grth, off, ei, ek, xm, ym, zm, xmas, xcg, ycg, zcg, xxm, yym, zzm, ixx, iyy, izz, ixy, iyz, izx, rei, rek, flag)
Definition grelem_sav.F:54
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)