40 1 ELBUF_STR,PM, RHO, OFF,
53 E PX1H1, PX1H2, PX1H3, PX1H4,
54 F PX2H1, PX2H2, PX2H3, PX2H4,
55 G PX3H1, PX3H2, PX3H3, PX3H4,
56 H PX4H1, PX4H2, PX4H3, PX4H4,
58 J VD2, DELTAX, PID, GEO,
59 K PARTSAV, IPARTS, DXX, DYY,
61 M FHOUR, JR0, JS0, JT0,
62 N EINT, VOL0, SIGY, SIG0,
63 O SIGOLD, ICP, DEFP, MATVIS,
64 P ET, D_MAX, NEL, GAMA,
65 Q UPARAM, STRHG, STRAIN, ISTRAIN,
66 R MTN, ISMSTR, JLAG, IINT ,
76#include "implicit_f.inc"
92INTEGER,
INTENT(IN) :: ISMSTR
93 INTEGER,
INTENT(IN) :: JLAG
94 INTEGER,
INTENT(IN) ::
97 . PM(NPROPM,*),GEO(NPROPG,*), RHO(*),OFF(*),
98 . VX1(*),VX2(*),VX3(*),VX4(*),VX5(*),VX6(*),VX7(*),VX8(*),
99 . vy1(*),vy2(*),vy3(*),vy4(*),vy5(*),vy6(*),vy7(*),vy8(*),
100 . vz1(*),vz2(*),vz3(*),vz4(*),vz5(*),vz6(*),vz7(*),vz8(*),
101 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
102 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
103 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
104 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*),
105 . px1h1(*), px1h2(*), px1h3(*), px1h4(*),
106 . px2h1(*), px2h2(*), px2h3(*), px2h4(*),
107 . px3h1(*), px3h2(*), px3h3(*), px3h4(*),
108 . px4h1(*), px4h2(*), px4h3(*), px4h4(*),
110 . vol(*),cxx(*),vis(*),vd2(*),deltax(*),
111 . fhour(nel,3,4),jr0(*),js0(*),jt0(*) ,eint(*),
112 . dxx(*), dyy(*), dzz(*), d4(*), d5(*), d6(*) ,
113 . sigy(*) ,sig0(nel,6),vol0(*),sigold(nel,6),defp(*),et(*),
114 . d_max(*),strhg(nel,18),strain(nel,6)
116 . uparam(*),gama(mvsiz,6)
117 INTEGER MAT(*),PID(*),IPARTS(*),ICP,MATVIS
118 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
119 type(matparam_struct_) ,
intent(in) :: mat_param
123 INTEGER I, MX, J,K,IET, MT,IPLAST
125 . caq(mvsiz), fcl(mvsiz), fcq(mvsiz),deint(mvsiz),
126 . h11(mvsiz), h22(mvsiz), h33(mvsiz),
127 . h12(mvsiz), h13(mvsiz), h23(mvsiz),
128 . hgx1(mvsiz), hgx2(mvsiz), hgx3(mvsiz), hgx4(mvsiz),
129 . hgy1(mvsiz), hgy2(mvsiz), hgy3(mvsiz), hgy4(mvsiz),
130 . hgz1(mvsiz), hgz2(mvsiz), hgz3(mvsiz), hgz4(mvsiz),
131 . vx3478, vx2358, vx1467, vx1256,
132 . vy3478, vy2358, vy1467, vy1256,
133 . vz3478, vz2358, vz1467, vz1256,
138 . g_3dt(mvsiz),nu,gg(mvsiz),de,ds,dsig(6),
139 . sm1(mvsiz),sm2(mvsiz),smo1(mvsiz),smo2(mvsiz),smo,
140 . jr_1(mvsiz),js_1(mvsiz),jt_1(mvsiz),nfhour(mvsiz,3,4),
141 . dfhour(mvsiz,3,4),fhourt(3,4),dt05,rho0,etmax,
142 . nus(mvsiz),nu2(mvsiz),nu4(mvsiz),nep,e0(mvsiz),
143 . e_r,e_s,e_t,fac,fac1,fac2,coefh,hq13p,hq13n,hq24p,hq24n,ff,
146 . cc(mvsiz,3,3),
cg(mvsiz,3,3),g33(mvsiz,3,3),gm,gmin,dama_g(mvsiz,3)
150 iplast = elbuf_str%GBUF%G_PLA
165 CALL mmodul(1 ,nel ,pm ,mat ,mtn ,
166 . gama ,uparam ,cc ,
cg ,g33 , mat_param )
168 gm = third*(g33(i,1,1)+g33(i,2,2)+g33
169 gg(i)=half*rho0*cxx(i)*cxx(i)*(one
173 gg(i)=
max(gg(i),gmin)
174 e0(i)=two*(one+nu)*gg(i)
185 IF (iet > 1 .AND. matvis>0 )
THEN
186 CALL szetfac(1,nel,iet,mtn,et,gg )
187 ELSEIF (matvis==1.AND.ismstr<10)
THEN
189 ff=third*(dxx(i)+dyy(i)+dzz(i))
190 de =(dxx(i)-ff)*(dxx(i)-ff)+(dyy(i)-ff)*(dyy(i)-ff)+
191 . (dzz(i)-ff)*(dzz(i)-ff) + fourth*(d4(i)*d4(i)+
192 . d5(i)*d5(i)+d6(i)*d6(i))
194 dsig(1)=sig0(i,1)-sigold(i,1)
195 dsig(2)=sig0(i,2)-sigold(i,2)
196 dsig(3)=sig0(i,3)-sigold(i,3)
197 dsig(4)=sig0(i,4)-sigold(i,4)
198 dsig(5)=sig0(i,5)-sigold(i,5)
199 dsig(6)=sig0(i,6)-sigold(i,6)
200 ff= third*(dsig(1)+dsig(2)+dsig(3))
204 ds =dsig(1)*dsig(1)+dsig(2)*dsig(2)+dsig(3)*dsig(3)+
205 . dsig(4)*dsig(4)+dsig(5)*dsig(5)+dsig(6)*dsig(6)
206 gg(i)=
max(fiveem2*gg(i),sqrt(ds/
max(de,em30)))
213 caq(i)=fourth*off(i)*geo(13,mt)
218 caq(i)=fourth*off(i)*pm(4,mx)
222 g_3dt(i)=third*off(i)*gg(i)*dt1
231 fcl(i)=onep1*caq(i)*rho(i)*vol(i)**third
232 fcl(i)=zep00666666667*fcl(i)*cxx(i)
236 fcl(i)=caq(i)*rho(i)*vol(i)**third
237 fcl(i)=zep00666666667*fcl(i)*cxx(i)
271 ELSEIF(icp==2.AND.iplast>0)
THEN
273 fac1 = sigy(i)/e0(i)+defp(i)
275 nus(i)=nu+(half-nu)*fac2
283 nu2(i) =nus(i)/(one-nus(i))
288 vx3478=vx3(i)-vx4(i)-vx7(i)+vx8(i)
289 vx2358=vx2(i)-vx3(i)-vx5(i)+vx8(i)
290 vx1467=vx1(i)-vx4(i)-vx6(i)+vx7(i)
291 vx1256=vx1(i)-vx2(i)-vx5(i)+vx6(i)
293 vy3478=vy3(i)-vy4(i)-vy7(i)+vy8(i)
294 vy2358=vy2(i)-vy3(i)-vy5(i)+vy8(i)
295 vy1467=vy1(i)-vy4(i)-vy6(i)+vy7(i)
296 vy1256=vy1(i)-vy2(i)-vy5(i)+vy6(i)
298 vz3478=vz3(i)-vz4(i)-vz7(i)+vz8(i)
299 vz2358=vz2(i)-vz3(i)-vz5(i)+vz8(i)
300 vz1467=vz1(i)-vz4(i)-vz6(i)+vz7(i)
301 vz1256=vz1(i)-vz2(i)-vz5(i)+vz6(i)
303 hgx3(i)=(vx1467-vx2358)*one_over_8
304 hgx1(i)=(vx1467+vx2358)*one_over_8
305 hgx2(i)=(vx1256-vx3478)*one_over_8
306 hgx4(i)=-(vx1256+vx3478)*one_over_8
308 hgy3(i)=(vy1467-vy2358)*one_over_8
309 hgy1(i)=(vy1467+vy2358)*one_over_8
310 hgy2(i)=(vy1256-vy3478)*one_over_8
311 hgy4(i)=-(vy1256+vy3478)*one_over_8
313 hgz3(i)=(vz1467-vz2358)*one_over_8
314 hgz1(i)=(vz1467+vz2358)*one_over_8
315 hgz2(i)=(vz1256-vz3478)*one_over_8
316 hgz4(i)=-(vz1256+vz3478)*one_over_8
334 & -(px1h1(i)*vx17+px2h1(i)*vx28
335 & +px3h1(i)*vx35+px4h1(i)*vx46)
337 & -(px1h1(i)*vy17+px2h1(i)*vy28
338 & +px3h1(i)*vy35+px4h1(i)*vy46)
340 & -(px1h1(i)*vz17+px2h1(i)*vz28
341 & +px3h1(i)*vz35+px4h1(i)*vz46)
346 & -(px1h2(i)*vx17+px2h2(i)*vx28
347 & +px3h2(i)*vx35+px4h2(i)*vx46)
349 & -(px1h2(i)*vy17+px2h2(i)*vy28
350 & +px3h2(i)*vy35+px4h2(i)*vy46)
352 & -(px1h2(i)*vz17+px2h2(i)*vz28
353 & +px3h2(i)*vz35+px4h2(i)*vz46)
357 & -(px1h3(i)*vx17+px2h3(i)*vx28
358 & +px3h3(i)*vx35+px4h3(i)*vx46)
360 & -(px1h3(i)*vy17+px2h3(i)*vy28
361 & +px3h3(i)*vy35+px4h3(i)*vy46)
363 & -(px1h3(i)*vz17+px2h3(i)*vz28
364 & +px3h3(i)*vz35+px4h3(i)*vz46)
369 & -(px1h4(i)*vx17+px2h4(i)*vx28
370 & +px3h4(i)*vx35+px4h4(i)*vx46)
372 & -(px1h4(i)*vy17+px2h4(i)*vy28
373 & +px3h4(i)*vy35+px4h4(i)*vy46)
375 & -(px1h4(i)*vz17+px2h4(i)*vz28
376 & +px3h4(i)*vz35+px4h4(i)*vz46)
380 jr_1(i) = one/
max(em20,jr0(i))
381 js_1(i) = one/
max(em20,js0(i))
382 jt_1(i) = one/
max(em20,jt0(i))
383 h11(i) = js0(i)*jt0(i)*jr_1(i)
384 h22(i) = jr0(i)*jt0(i)*js_1(i)
385 h33(i) = jr0(i)*js0(i)*jt_1(i)
392 fhour(i,1,1) = fhour(i,1,1)*off(i)
393 fhour(i,1,2) = fhour(i,1,2)*off(i)
394 fhour(i,1,3) = fhour(i,1,3)*off(i)
395 fhour(i,1,4) = fhour(i,1,4)*off(i)
396 fhour(i,2,1) = fhour(i,2,1)*off(i)
397 fhour(i,2,2) = fhour(i,2,2)*off(i)
398 fhour(i,2,3) = fhour(i,2,3)*off(i)
399 fhour(i,2,4) = fhour(i,2,4)*off(i)
400 fhour(i,3,1) = fhour(i,3,1)*off(i)
401 fhour(i,3,2) = fhour(i,3,2)*off(i)
402 fhour(i,3,3) = fhour(i,3,3)*off(i)
403 fhour(i,3,4) = fhour(i,3,4)*off(i)
408 2
cg, g33, fhour, sigy,
409 3 sigold, nu, smo1, smo2,
414 . fhour,jr0,js0,jt0,fcl,
415 . hgx1, hgx2, hgx3, hgx4,
416 . hgy1, hgy2, hgy3, hgy4,
417 . hgz1, hgz2, hgz3, hgz4,
420 . jr_1,js_1 , jt_1, nu4,nu2 ,
421 . cc ,
cg ,g33 ,nfhour,nel)
425 . nfhour(i,3,1)*hgz1(i) + nfhour(i,3,2)*hgz2(i) +
426 . nfhour(i,3,3)*hgz3(i) + nfhour(i,3,4)*hgz4(i) +
427 . nfhour(i,1,1)*hgx1(i) + nfhour(i,1,2)*hgx2(i) +
428 . nfhour(i,1,3)*hgx3(i) + nfhour(i,1,4)*hgx4(i) +
429 . nfhour(i,2,1)*hgy1(i) + nfhour(i,2,2)*hgy2(i) +
430 . nfhour(i,2,3)*hgy3(i) + nfhour(i,2,4)*hgy4(i)
431 eint(i)= eint(i)+dt05*deint(i)/
max(em20,vol0(i))
435 IF (iet > 1 .AND. mtn == 24 )
THEN
436 CALL mdama24(elbuf_str,1,nel ,pm ,mat ,dama_g )
439 fac1=one- dama_g(i,j)
440 fhour(i,j,1:4) = fhour(i,j,1:4)*fac1
446 e_r =g_3dt(i)*jr_1(i)
447 e_s =g_3dt(i)*js_1(i)
448 e_t =g_3dt(i)*jt_1(i)
449 dfhour(i,1,1) = e_r*hgx1(i)
450 dfhour(i,1,2) = e_r*hgx2(i)
451 dfhour(i,1,3) = e_r*hgx3(i)
452 dfhour(i,1,4) = e_r*hgx4(i)
453 dfhour(i,2,1) = e_s*hgy1(i)
454 dfhour(i,2,2) = e_s*hgy2(i)
455 dfhour(i,2,3) = e_s*hgy3(i)
456 dfhour(i,2,4) = e_s*hgy4(i)
457 dfhour(i,3,1) = e_t*hgz1(i)
458 dfhour(i,3,2) = e_t*hgz2(i)
459 dfhour(i,3,3) = e_t*hgz3(i)
460 dfhour(i,3,4) = e_t*hgz4(i)
462 fhour(i,1,1) = fhour(i,1,1) + dfhour(i,1,1)
463 fhour(i,1,2) = fhour(i,1,2) + dfhour(i,1,2)
464 fhour(i,1,3) = fhour(i,1,3) + dfhour(i,1,3)
465 fhour(i,1,4) = fhour(i,1,4) + dfhour(i,1,4)
466 fhour(i,2,1) = fhour(i,2,1) + dfhour(i,2,1)
467 fhour(i,2,2) = fhour(i,2,2) + dfhour(i,2,2)
468 fhour(i,2,3) = fhour(i,2,3) + dfhour(i,2,3)
469 fhour(i,2,4) = fhour(i,2,4) + dfhour(i,2,4)
470 fhour(i,3,1) = fhour(i,3,1) + dfhour(i,3,1)
471 fhour(i,3,2) = fhour(i,3,2) + dfhour(i,3,2)
472 fhour(i,3,3) = fhour(i,3,3) + dfhour(i,3,3)
473 fhour(i,3,4) = fhour(i,3,4) + dfhour(i,3,4)
478 2
cg, g33, fhour, sigy,
479 3 sig0, nu, sm1, sm2,
484 IF (sm1(i)>sigy(i).AND.deint(i)>0)
THEN
485 smo = zep9*smo1(i)+em01*smo2(i)
491 fac = one -
max(em20,fac1/fac2)
493 IF (sm2(i)<sigy(i))
THEN
494 fac1 =(sm1(i)-sigy(i))/
max((sm1(i)-sm2(i)),em20)
495 fac1 =half + sqrt(fac1)
496 fac =
min(fac1,one)*fac
498 fhour(i,1,1) = fhour(i,1,1) - fac*dfhour(i,1,1)
499 fhour(i,1,2) = fhour(i,1,2) - fac*dfhour(i,1,2)
500 fhour(i,1,3) = fhour(i,1,3) - fac*dfhour(i,1,3)
501 fhour(i,1,4) = fhour(i,1,4) - fac*dfhour(i,1,4)
502 fhour(i,2,1) = fhour(i,2,1) - fac*dfhour(i,2,1)
503 fhour(i,2,2) = fhour(i,2,2) - fac*dfhour(i,2,2)
505 fhour(i,2,4) = fhour(i,2,4) - fac*dfhour(i,2,4)
506 fhour(i,3,1) = fhour(i,3,1) - fac*dfhour(i,3,1)
507 fhour(i,3,2) = fhour(i,3,2) - fac*dfhour(i,3,2)
508 fhour(i,3,3) = fhour(i,3,3) - fac*dfhour(i,3,3)
509 fhour(i,3,4) = fhour(i,3,4) - fac*dfhour(i,3,4)
514 . fhour,jr0,js0,jt0,fcl,
515 . hgx1, hgx2, hgx3, hgx4,
516 . hgy1, hgy2, hgy3, hgy4,
517 . hgz1, hgz2, hgz3, hgz4,
520 . jr_1,js_1 , jt_1, nu4,nu2 ,
521 . cc ,
cg ,g33 ,nfhour,nel)
523 hq13p = (nfhour(i,1,1)+nfhour(i,1,3))*one_over_8
524 hq13n = (nfhour(i,1,1)-nfhour(i,1,3))*one_over_8
525 hq24p = (nfhour(i,1,2)+nfhour(i,1,4))*one_over_8
526 hq24n = (nfhour(i,1,2)-nfhour(i,1,4))*one_over_8
527 ff =-px1h1(i)*nfhour(i,1,1)-px1h2(i)*nfhour(i,1,2)
528 . -px1h3(i)*nfhour(i,1,3)-px1h4(i)*nfhour(i,1,4)
529 f11(i) =-(hq13p+hq24n+ff)
530 f17(i) =-(hq13p+hq24p-ff)
531 ff =-px2h1(i)*nfhour(i,1,1)-px2h2(i)*nfhour(i,1,2)
532 . -px2h3(i)*nfhour(i,1,3)-px2h4(i)*nfhour(i,1,4)
533 f12(i) =-(hq13n-hq24n+ff)
534 f18(i) =-(hq13n-hq24p-ff)
535 ff =-px3h1(i)*nfhour(i,1,1)-px3h2(i)*nfhour(i,1,2)
536 . -px3h3(i)*nfhour(i,1,3)-px3h4(i)*nfhour(i,1,4)
537 f13(i) =-(-hq13n-hq24p+ff)
538 f15(i) =-(-hq13n-hq24n-ff)
539 ff =-px4h1(i)*nfhour(i,1,1)-px4h2(i)*nfhour(i,1,2)
540 . -px4h3(i)*nfhour(i,1,3)-px4h4(i)*nfhour(i,1,4)
541 f14(i) =-(-hq13p+hq24p+ff)
542 f16(i) =-(-hq13p+hq24n-ff)
545 hq13p = (nfhour(i,2,1)+nfhour(i,2,3))*one_over_8
546 hq13n = (nfhour(i,2,1)-nfhour(i,2,3))*one_over_8
547 hq24p = (nfhour(i,2,2)+nfhour(i,2,4))*one_over_8
548 hq24n = (nfhour(i,2,2)-nfhour(i,2,4))*one_over_8
549 ff =-px1h1(i)*nfhour(i,2,1)-px1h2(i)*nfhour(i,2,2)
550 . -px1h3(i)*nfhour(i,2,3)-px1h4(i)*nfhour(i,2,4)
551 f21(i) =-(hq13p+hq24n+ff)
552 f27(i) =-(hq13p+hq24p-ff)
553 ff =-px2h1(i)*nfhour(i,2,1)-px2h2(i)*nfhour(i,2,2)
554 . -px2h3(i)*nfhour(i,2,3)-px2h4(i)*nfhour(i,2,4)
555 f22(i) =-(hq13n-hq24n+ff)
556 f28(i) =-(hq13n-hq24p-ff)
557 ff =-px3h1(i)*nfhour(i,2,1)-px3h2(i)*nfhour(i,2,2)
558 . -px3h3(i)*nfhour(i,2,3)-px3h4(i)*nfhour(i,2,4)
559 f23(i) =-(-hq13n-hq24p+ff)
560 f25(i) =-(-hq13n-hq24n-ff)
562 . -px4h3(i)*nfhour(i,2,3)-px4h4(i)*nfhour(i,2,4)
563 f24(i) =-(-hq13p+hq24p+ff)
564 f26(i) =-(-hq13p+hq24n-ff)
567 hq13p = (nfhour(i,3,1)+nfhour(i,3,3))*one_over_8
568 hq13n = (nfhour(i,3,1)-nfhour(i,3,3))*one_over_8
569 hq24p = (nfhour(i,3,2)+nfhour(i,3,4))*one_over_8
570 hq24n = (nfhour(i,3,2)-nfhour(i,3,4))*one_over_8
571 ff =-px1h1(i)*nfhour(i,3,1)-px1h2(i)*nfhour(i,3,2)
572 . -px1h3(i)*nfhour(i,3,3)-px1h4(i)*nfhour(i,3,4)
573 f31(i) =-(hq13p+hq24n+ff)
574 f37(i) =-(hq13p+hq24p-ff)
575 ff =-px2h1(i)*nfhour(i,3,1)-px2h2(i)*nfhour(i,3,2)
576 . -px2h3(i)*nfhour(i,3,3)-px2h4(i)*nfhour(i,3,4)
577 f32(i) =-(hq13n-hq24n+ff)
578 f38(i) =-(hq13n-hq24p-ff)
579 ff =-px3h1(i)*nfhour(i,3,1)-px3h2(i)*nfhour(i,3,2)
580 . -px3h3(i)*nfhour(i,3,3)-px3h4(i)*nfhour(i,3,4)
581 f33(i) =-(-hq13n-hq24p+ff)
582 f35(i) =-(-hq13n-hq24n-ff)
583 ff =-px4h1(i)*nfhour(i,3,1)-px4h2(i)*nfhour(i,3,2)
584 . -px4h3(i)*nfhour(i,3,3)-px4h4(i)*nfhour(i,3,4)
585 f34(i) =-(-hq13p+hq24p+ff)
586 f36(i) =-(-hq13p+hq24n-ff)
591 eint(i)= eint(i)+dt05*(
592 . nfhour(i,3,1)*hgz1(i) + nfhour(i,3,2)*hgz2(i) +
593 . nfhour(i,3,3)*hgz3(i) + nfhour(i,3,4)*hgz4(i) +
594 . nfhour(i,1,1)*hgx1(i) + nfhour(i,1,2)*hgx2(i) +
595 . nfhour(i,1,3)*hgx3(i) + nfhour(i,1,4)*hgx4(i) +
596 . nfhour(i,2,1)*hgy1(i) + nfhour(i,2,2)*hgy2(i) +
597 . nfhour(i,2,3)*hgy3(i) + nfhour(i,2,4)*hgy4(i) )
602 . ((anim_n(iad_gps+400+1) == 1) .OR. (anim_n(iad_gps+400+2) == 1) .OR.
603 . (anim_n(iad_gps+400+3) == 1) .OR. (anim_n(iad_gps+400+4) == 1) .OR.
604 . (anim_n(iad_gps+400+5) == 1) .OR. (anim_n(iad_gps+400+6) == 1)) )
THEN
606 1 jr_1, js_1, jt_1, strhg,
607 2 nel, hgx1, hgx2, hgx3,
608 3 hgx4, hgy1, hgy2, hgy3,
609 4 hgy4, hgz1, hgz2, hgz3,