39 2 THK, EINT, PARTSAV, IPARTTG,
40 3 RHO, VOL00, IXTG, X,
41 4 VR, THK02, AREA, GRESAV,
42 5 GRTH, IGRTH, OFF, IXFEM,
43 6 ILEV, IEL_CRK, IADTG_CRK,NFT1,
44 7 IEXPAN, EINTTH, ITASK, MAT,
45 8 GVOL, ACTIFXFEM,IGRE, SENSORS,
54#include "implicit_f.inc"
63#include "com_xfem1.inc"
67 INTEGER,
INTENT(IN) :: IGRE
68 INTEGER JFT, JLT, IEXPAN,
69 . IPARTTG(*),IXTG(NIXTG,*),GRTH(*),IGRTH(*),IXFEM,
70 . ILEV,IEL_CRK(*),IADTG_CRK(3,*),NFT1,ITASK
71 INTEGER,
INTENT(IN) :: MAT(MVSIZ),ACTIFXFEM
74 . PM(NPROPM,*), V(3,*), THK(*), EINT(JLT,2),PARTSAV(NPSAV,*)
76 . rho(mvsiz), vol00(mvsiz),x(3,*),vr(3,*) ,thk02(*),
area(*),
77 . gresav(*), off(*),eintth(*)
78 my_real,
INTENT(IN) :: gvol(mvsiz)
79 type (sensors_),
INTENT(INOUT) :: SENSORS
80 INTEGER,
INTENT(IN) :: NEL,G_WPLA
81 my_real,
DIMENSION(NEL*G_WPLA),
INTENT(IN) :: WPLA
85 INTEGER I, MX, II, J, IC, JST(MVSIZ+1),FLAG
88 . in25,xx,yy,zz,xy,yz,zx, coef, inel,
89 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz),
90 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz),
91 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz),
92 . ei(mvsiz),xmas(mvsiz),rei(mvsiz),rek(mvsiz),
93 . ek(mvsiz), xm(mvsiz), ym(mvsiz), zm(mvsiz),
94 . vxa(mvsiz), vya(mvsiz), vza(mvsiz) , va2, xmas25(mvsiz),
95 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
96 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
97 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
98 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
99 . vrx1(mvsiz), vrx2(mvsiz), vrx3(mvsiz),
100 . vry1(mvsiz), vry2(mvsiz), vry3(mvsiz),
101 . vrz1(mvsiz), vrz2(mvsiz), vrz3(mvsiz),
103 . y1(mvsiz), y2(mvsiz), y3(mvsiz),
104 . z1(mvsiz), z2(mvsiz), z3(mvsiz),
105 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),
106 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3)
111 vx1(i)=v(1,ixtg(2,i))
112 vy1(i)=v(2,ixtg(2,i))
113 vz1(i)=v(3,ixtg(2,i))
114 vx2(i)=v(1,ixtg(3,i))
115 vy2(i)=v(2,ixtg(3,i))
116 vz2(i)=v(3,ixtg(3,i))
117 vx3(i)=v(1,ixtg(4,i))
118 vy3(i)=v(2,ixtg(4,i))
119 vz3(i)=v(3,ixtg(4,i))
123 1 jft ,jlt ,nft1 ,ilev ,iel_crk,
124 2 x ,v ,vr ,vl1 ,vl2 ,
125 3 vl3 ,vrl1 ,vrl2 ,vrl3 ,x1 ,
126 4 x2 ,x3 ,y1 ,y2 ,y3 ,
127 5 z1 ,z2 ,z3 ,iadtg_crk)
152 vxa(i)=vx1(i)+vx2(i)+vx3(i)
153 vya(i)=vy1(i)+vy2(i)+vy3(i)
154 vza(i)=vz1(i)+vz2(i)+vz3(i)
155 xmas(i)=pm(1,mx)*gvol(i)
156 va2 =vx1(i)*vx1(i)+vx2(i)*vx2(i)+vx3(i)*vx3(i)
157 1 +vy1(i)*vy1(i)+vy2(i)*vy2(i)+vy3(i)*vy3(i)
158 2 +vz1(i)*vz1(i)+vz2(i)*vz2(i)+vz3(i)*vz3(i)
159 ei(i) = eint(i,1) + eint(i,2)
160 ek(i) = xmas(i)*va2*one_over_6
161 xmas25(i)= xmas(i)*third
162 xm(i) = xmas25(i)*vxa(i)
163 ym(i) = xmas25(i)*vya(i)
164 zm(i) = xmas25(i)*vza(i)
173 xx= x(1,ixtg(2,i))+x(1,ixtg(3,i))+x(1,ixtg(4,i))
174 yy= x(2,ixtg(2,i))+x(2,ixtg(3,i))+x(2,ixtg(4,i))
175 zz= x(3,ixtg(2,i))+x(3,ixtg(3,i))+x(3,ixtg(4,i))
179 in25 = xmas25(i)*(thk02(i)+
area(i))*one_over_12
190 ixx(i)= inel + yy + zz
191 iyy(i)= inel + zz + xx
192 izz(i)= inel + xx + yy
196 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
198 . (vr(1,ixtg(2,i))+vr(1,ixtg(3,i))+vr(1,ixtg(4,i)))
199 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
201 . (vr(2,ixtg(2,i))+vr(2,ixtg(3,i))+vr(2,ixtg(4,i)))
202 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
204 . (vr(3,ixtg(2,i))+vr(3,ixtg(3,i))+vr(3,ixtg(4,i)))
206 . vr(1,ixtg(2,i))*vr(1,ixtg(2,i))+vr(1,ixtg(3,i))*vr(1,ixtg(3,i))
207 . +vr(1,ixtg(4,i))*vr(1,ixtg(4,i))
208 . +vr(2,ixtg(2,i))*vr(2,ixtg(2,i))+vr(2,ixtg(3,i))*vr(2,ixtg
209 . +vr(2,ixtg(4,i))*vr(2,ixtg(4,i))
210 . +vr(3,ixtg(2,i))*vr(3,ixtg(2,i))+vr(3,ixtg(3,i))*vr(3,ixtg(3,i))
211 . +vr(3,ixtg(4,i))*vr(3,ixtg(4,i))
213 rek(i)= in25*va2*half
217 xx= x1(i)+x2(i)+x3(i)
218 yy= y1(i)+y2(i)+y3(i)
219 zz= z1(i)+z2(i)+z3(i)
223 in25 = xmas25(i)*(thk02(i)+
area(i))*one_over_12
234 ixx(i)= inel + yy + zz
235 iyy(i)= inel + zz + xx
236 izz(i)= inel + xx + yy
240 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
241 . +in25*(vrx1(i)+vrx2(i)+vrx3(i))
242 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
243 . +in25*(vry1(i)+vry2(i)+vry3(i))
244 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
245 . +in25*(vrz1(i)+vrz2(i)+vrz3(i))
246 va2 = vrx1(i)*vrx1(i)+vrx2(i)*vrx2(i)+vrx3(i)*vrx3(i)
247 . +vry1(i)*vry1(i)+vry2(i)*vry2(i)+vry3(i)*vry3(i)
248 . +vrz1(i)*vrz1(i)+vrz2(i)*vrz2(i)+vrz3(i)*vrz3(i)
250 rek(i)= in25*va2*half
257 CALL grelem_sav(jft ,jlt ,gresav,igrth ,grth ,
258 2 off ,ei ,ek ,xm ,ym ,
259 3 zm ,xmas ,xcg ,ycg ,zcg ,
260 4 xxm ,yym ,zzm ,ixx ,iyy ,
261 5 izz ,ixy ,iyz ,izx ,rei ,
268 IF (iparttg(j)/=iparttg(j-1))
THEN
278 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
280 partsav(1,mx)=partsav(1,mx) + ei(i)
281 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
282 partsav(2,mx)=partsav(2,mx) + ek(i)
283 partsav(3,mx)=partsav(3,mx) + xm(i)
284 partsav(4,mx)=partsav(4,mx) + ym(i)
285 partsav(5,mx)=partsav(5,mx) + zm(i)
288 partsav(1,mx)=partsav(1,mx) + ei(i)
289 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
290 partsav(2,mx)=partsav(2,mx) + ek(i)
291 partsav(3,mx)=partsav(3,mx) + xm(i)
292 partsav(4,mx)=partsav(4,mx) + ym(i)
293 partsav(5,mx)=partsav(5,mx) + zm(i)
296 partsav(6,mx)=partsav(6,mx) + xmas(i)
298 partsav(9,mx)=partsav(9,mx) + xcg(i)
299 partsav(10,mx)=partsav(10,mx) + ycg(i)
300 partsav(11,mx)=partsav(11,mx) + zcg(i)
301 partsav(12,mx)=partsav(12,mx) + xxm(i)
302 partsav(13,mx)=partsav(13,mx) + yym(i)
303 partsav(14,mx)=partsav(14,mx) + zzm(i)
304 partsav(15,mx)=partsav(15,mx) + ixx(i)
305 partsav(16,mx)=partsav(16,mx) + iyy(i)
306 partsav(17,mx)=partsav(17,mx) + izz(i)
307 partsav(18,mx)=partsav(18,mx) + ixy(i)
308 partsav(19,mx)=partsav(19,mx) + iyz(i)
309 partsav(20,mx)=partsav(20,mx) + izx(i)
310 partsav(21,mx)=partsav(21,mx) + rei(i)
311 partsav(22,mx)=partsav(22,mx) + rek(i)
316 IF (jst(ii+1)-jst(ii)>15)
THEN
317 DO i=jst(ii),jst(ii+1)-1
318 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
320 partsav(1,mx)=partsav(1,mx) + ei(i)
321 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
322 partsav(2,mx)=partsav(2,mx) + ek(i)
323 partsav(3,mx)=partsav(3,mx) + xm(i)
324 partsav(4,mx)=partsav(4,mx) + ym(i)
328 partsav(1,mx)=partsav(1,mx) + ei(i)
329 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
330 partsav(2,mx)=partsav(2,mx) + ek(i)
331 partsav(3,mx)=partsav(3,mx) + xm(i)
332 partsav(4,mx)=partsav(4,mx) + ym(i)
333 partsav(5,mx)=partsav(5,mx) + zm(i)
336 partsav(6,mx)=partsav(6,mx) + xmas(i)
338 partsav(9,mx)=partsav(9,mx) + xcg(i)
339 partsav(10,mx)=partsav(10,mx) + ycg(i)
340 partsav(11,mx)=partsav(11,mx) + zcg(i)
341 partsav(12,mx)=partsav(12,mx) + xxm(i)
342 partsav(13,mx)=partsav(13,mx) + yym(i)
343 partsav(14,mx)=partsav(14,mx) + zzm(i)
344 partsav(15,mx)=partsav(15,mx) + ixx(i)
345 partsav(16,mx)=partsav(16,mx) + iyy(i)
346 partsav(17,mx)=partsav(17,mx) + izz(i)
347 partsav(18,mx)=partsav(18,mx) + ixy(i)
348 partsav(19,mx)=partsav(19,mx) + iyz(i)
349 partsav(20,mx)=partsav(20,mx) + izx(i)
350 partsav(21,mx)=partsav(21,mx) + rei(i)
351 partsav(22,mx)=partsav(22,mx) + rek(i)
354 DO i=jst(ii),jst(ii+1)-1
355 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
357 partsav(1,mx)=partsav(1,mx) + ei(i)
358 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
359 partsav(2,mx)=partsav(2,mx) + ek(i)
360 partsav(3,mx)=partsav(3,mx) + xm(i)
361 partsav(4,mx)=partsav(4,mx) + ym(i)
362 partsav(5,mx)=partsav(5,mx) + zm(i)
365 partsav(1,mx)=partsav(1,mx) + ei(i)
366 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
367 partsav(2,mx)=partsav(2,mx) + ek(i)
368 partsav(3,mx)=partsav(3,mx) + xm(i)
369 partsav(4,mx)=partsav(4,mx) + ym(i)
370 partsav(5,mx)=partsav(5,mx) + zm(i)
373 partsav(6,mx)=partsav(6,mx) + xmas(i)
375 partsav(9,mx)=partsav(9,mx) + xcg(i)
376 partsav(10,mx)=partsav(10,mx) + ycg(i)
377 partsav(11,mx)=partsav(11,mx) + zcg(i)
378 partsav(12,mx)=partsav(12,mx) + xxm(i)
379 partsav(13,mx)=partsav(13,mx) + yym(i)
380 partsav(14,mx)=partsav(14,mx) + zzm(i)
381 partsav(15,mx)=partsav(15,mx) + ixx(i)
382 partsav(16,mx)=partsav(16,mx) + iyy(i)
383 partsav(17,mx)=partsav(17,mx) + izz(i)
384 partsav(18,mx)=partsav(18,mx) + ixy(i)
385 partsav(19,mx)=partsav(19,mx) + iyz(i)
386 partsav(20,mx)=partsav(20,mx) + izx(i)
387 partsav(21,mx)=partsav(21,mx) + rei(i)
388 partsav(22,mx)=partsav(22,mx) + rek(i)
398 IF (iparttg(j)/=iparttg(j-1))
THEN
408 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
410 partsav(1,mx)=partsav(1,mx) + ei(i)
411 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
412 partsav(2,mx)=partsav(2,mx) + ek
413 partsav(3,mx)=partsav(3,mx) + xm(i)
414 partsav(4,mx)=partsav(4,mx) + ym(i)
415 partsav(5,mx)=partsav(5,mx) + zm(i)
418 partsav(1,mx)=partsav(1,mx) + ei(i)
419 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
420 partsav(2,mx)=partsav(2,mx) + ek(i)
421 partsav(3,mx)=partsav(3,mx) + xm(i)
423 partsav(5,mx)=partsav(5,mx) + zm(i)
426 partsav(6,mx)=partsav(6,mx) + xmas(i)
432 IF (jst(ii+1)-jst(ii)>15)
THEN
433 DO i=jst(ii),jst(ii+1)-1
434 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
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)
444 partsav(1,mx)=partsav(1,mx) + ei(i)
445 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
446 partsav(2,mx)=partsav(2,mx) + ek(i)
447 partsav(3,mx)=partsav(3,mx) + xm(i)
448 partsav(4,mx)=partsav(4,mx) + ym(i)
449 partsav(5,mx)=partsav(5,mx) + zm(i)
452 partsav(6,mx)=partsav(6,mx) + xmas(i)
456 DO i=jst(ii),jst(ii+1)-1
457 IF (icrack3d > 0 .AND. ixfem > 0 .AND. actifxfem > 0)
THEN
459 partsav(1,mx)=partsav(1,mx) + ei(i)
460 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
461 partsav(2,mx)=partsav(2,mx) + ek(i)
462 partsav(3,mx)=partsav(3,mx) + xm(i)
463 partsav(4,mx)=partsav(4,mx) + ym(i)
464 partsav(5,mx)=partsav(5,mx) + zm(i)
467 partsav(1,mx)=partsav(1,mx) + ei(i)
468 IF (g_wpla > 0) partsav(29,mx)=partsav(29,mx) + wpla(i)
469 partsav(2,mx)=partsav(2,mx) + ek(i)
470 partsav(3,mx)=partsav(3,mx) + xm(i)
471 partsav(4,mx)=partsav(4,mx) + ym(i)
472 partsav(5,mx)=partsav(5,mx) + zm(i)
475 partsav(6,mx)=partsav(6,mx) + xmas(i)
487 partsav(27,mx)=partsav(27,mx) + eintth(i)
494 IF (off(i)==zero)
THEN
495 partsav(25,mx) = partsav(25,mx) + one