38 2 PLA, SIGF, EPSF, DAM,
44 8 SOLD1, SOLD2, SOLD3, SOLD4,
45 9 SOLD5, SOLD6, SIGY, DEFP,
46 A NGL, SEQ_OUTPUT, NEL, EOSTYP,
47 B RHO0, AMU, AMU2, ESPE,
48 C DF, PSH, PNEW, DPDM,
50 E BUFMAT, NPC, TF, TSAIWU,
51 F VAREOS, NVAREOS, JCVT, JSPH,
52 G MAT_PARAM, NVARTMP_EOS,VARTMP_EOS)
56 USE matparam_def_mod ,
ONLY : matparam_struct_
61#include "implicit_f.inc"
75 COMMON /tablesizf/ stf,snpc
80 TYPE(MATPARAM_STRUCT_),
INTENT(IN) :: MAT_PARAM
81 INTEGER,
INTENT(IN) :: JCVT
82 INTEGER,
INTENT(IN) :: JSPH
83 INTEGER MAT(MVSIZ),NGL(MVSIZ),NEL,EOSTYP
84 INTEGER,
INTENT(IN) :: NVAREOS
86 . PM(NPROPM,*), OFF(*), SIG(NEL,6), EINT(*), PLA(*), SIGF(*),
87 . RX(*), RY(*), RZ(*), SX(*), SY(*), SZ(*),
88 . EPSF(*), DAM(NEL,5), EPE(NEL,3), EPC(NEL,3), A(MVSIZ,6), VOL(*),
89 . VNEW(MVSIZ), DVOL(MVSIZ), SSP(MVSIZ),
90 . D1(MVSIZ), D2(MVSIZ), D3(MVSIZ),D4(MVSIZ),D5(MVSIZ),D6(MVSIZ),
91 . sold1(mvsiz), sold2(mvsiz), sold3
92 . sold5(mvsiz), sold6(mvsiz),sigy(*),defp(*),seq_output(*),
93 . tsaiwu(mvsiz),vareos(nvareos*nel)
95 . rho0(nel), amu(nel) , amu2(nel), espe(nel), df(nel) ,
96 . psh(nel) , pnew(nel) , dpdm(nel), dpde(nel), rho(nel),
97 . temp(nel), bufmat(*),muold(nel)
98 INTEGER,
INTENT(IN)::NPC(SNPC)
99 my_real,
INTENT(IN)::tf(stf)
100 INTEGER,
INTENT(IN) :: NVARTMP_EOS
101 INTEGER,
INTENT(INOUt) :: VARTMP_EOS(NEL,NVARTMP_EOS)
105 INTEGER KD1(MVSIZ), KD2(MVSIZ), KD3(MVSIZ),
106 . KD4(MVSIZ),ICC(MVSIZ),
107 . I, IDAM, KDX, MX, NINDX, INDEX(MVSIZ), J, ICC_1
110 . ax(mvsiz), ay(mvsiz), az(mvsiz), bx(mvsiz), by(mvsiz),
111 . bz(mvsiz), cx(mvsiz), cy(mvsiz),cz(mvsiz),
112 . wvec(mvsiz),s1(mvsiz), s2(mvsiz), s3(mvsiz),
113 . t1(mvsiz), t2(mvsiz), t3(mvsiz),t4(mvsiz),t5(mvsiz),t6(mvsiz),
114 . e1(mvsiz), e2(mvsiz), e3(mvsiz),e4(mvsiz),e5(mvsiz),e6(mvsiz),
115 . hard(mvsiz), sigmy(mvsiz),
alpha(mvsiz), efib(mvsiz),
116 . epsft(mvsiz), epsfc(mvsiz), sigeq(mvsiz), p(mvsiz),
117 . d11(mvsiz), d12(mvsiz), d13(mvsiz), d22(mvsiz),
118 . d23(mvsiz), d33(mvsiz), g12(mvsiz), g23(mvsiz), g31(mvsiz),
119 . c11(mvsiz), c22(mvsiz), c33(mvsiz), c12(mvsiz), c23(mvsiz),
120 . c13(mvsiz), f11(mvsiz), f22(mvsiz), f44(mvsiz), f55(mvsiz),
121 . f12(mvsiz), f23(mvsiz), f1(mvsiz), f2(mvsiz), f4(mvsiz),
122 . f5(mvsiz), delta(mvsiz), so1(mvsiz),
123 . so2(mvsiz), so3(mvsiz), so4(mvsiz), so5(mvsiz), so6(mvsiz),
124 . ds1(mvsiz), ds2(mvsiz), ds3(mvsiz), ds4(mvsiz), ds5(mvsiz),
125 . ds6(mvsiz), dp1(mvsiz), dp2(mvsiz), dp3(mvsiz), dp4(mvsiz),
126 . dp5(mvsiz), dp6(mvsiz), lamda(mvsiz), coef(mvsiz), plas(mvsiz),
127 . cn(mvsiz), cb(mvsiz), cnn(mvsiz), sigt1(mvsiz), sigt2(mvsiz),
128 . sigt3(mvsiz),cc(mvsiz),epdr(mvsiz), f3(mvsiz), f33(mvsiz),
129 . f6(mvsiz),f66(mvsiz),f13(mvsiz)
131 . deve1(mvsiz), deve2(mvsiz), deve3(mvsiz), dav(mvsiz), pold(mvsiz),
134 . fib, ca, sigmx, epsp, dt5 ,
135 . sigym,ca_1, cb_1, cn_1, cc_1,
136 . epdr_1,alpha_1,f1_1,f2_1,f3_1,
137 . f4_1,f5_1,f6_1,f11_1,f22_1,
138 . f33_1,f44_1,f55_1,f66_1,f12_1,
139 . f23_1,f13_1,c11_1,c22_1,c33_1,
140 . c12_1,c23_1,c13_1,d11_1,d12_1,
141 . d13_1,d22_1,d23_1,d33_1,g12_1,
142 . g23_1,g31_1,wplaref,dwpla
145 IF(ncycle==0 .AND. irun==1)
THEN
154 idam=int(dam(i,5))-10000
156 kdx = idam - kd1(i)*1000
158 kdx = kdx - kd2(i)*100
160 kd4(i) = kdx - kd3(i)*10
183 5 cz, nel, jcvt, jsph)
184 CALL m14gtf(sig,ax ,ay ,az ,bx ,by,
185 2 bz ,cx ,cy ,cz ,d1 ,d2,
186 3 d3 ,d4 ,d5 ,d6 ,t1 ,t2,
187 4 t3 ,t4 ,t5 ,t6 ,e1 ,e2,
188 5 e3 ,e4 ,e5 ,e6 ,nel)
200 icc_1 = nint(pm(52,mx))
208 epsp =
max(abs(e1(i)),abs(e2(i)),abs(e3(i)),
209 . half*abs(e4(i)),half*abs(e5(i)),half*abs(e6(i)))
210 IF(epsp>epdr(i).AND.cc(i)/=zero)
THEN
211 epsp = one + cc(i) * log(epsp/epdr(i))
216 sigmx =pm(28,mx)*epsp
217 ELSEIF(icc(i)==2)
THEN
219 ELSEIF(icc(i)==3)
THEN
220 sigmx =pm(28,mx)*epsp
221 ELSEIF(icc(i)==4)
THEN
226 sigmy(i)=
min(sigmx,ca+cb(i)*pla(i)**cn(i))
227 IF(sigmy(i)==sigmx .AND. off(i)==one)
THEN
245 WRITE(iout,1000) ngl(i)
246#include "lockoff.inc"
260 epe(i,1)=epe(i,1)+e1(i)
261 epe(i,2)=epe(i,2)+e2(i)
262 epe(i,3)=epe(i,3)+e3(i)
346 IF (eostyp == 18)
THEN
348 t1(i)=t1(i)+d11(i)*e1(i)+d12(i)*e2(i)+d13(i)*e3(i)
349 t2(i)=t2(i)+d12(i)*e1(i)+d22(i)*e2(i)+d23(i)*e3(i)
350 t3(i)=t3(i)+d13(i)*e1(i)+d23(i)*e2(i)+d33(i)*e3(i)
351 t4(i)=t4(i)+g12(i)*e4(i)
352 t5(i)=t5(i)+g23(i)*e5(i)
353 t6(i)=t6(i)+g31(i)*e6(i)
357 dav(i) = third*(e1(i)+e2(i)+e3(i))
358 pold(i) = third*(t1(i)+t2(i)+t3(i))
362 deve1(i) = e1(i) - dav(i)
363 deve2(i) = e2(i) - dav(i)
364 deve3(i) = e3(i) - dav(i)
367 t1(i)=t1(i)+d11(i)*deve1(i)+d12(i)*deve2(i)+d13(i)*deve3(i)-pold(i)
368 t2(i)=t2(i)+d12(i)*deve1(i)+d22(i)*deve2(i)+d23(i)*deve3(i)-pold(i)
369 t3(i)=t3(i)+d13(i)*deve1(i)+d23(i)*deve2(i
372 muold(1:nel) =( rho(1:nel)/rho0)-one
373 sig(1:nel,1:6) = zero
374 CALL eosmain(0 ,nel ,eostyp ,pm ,off , ener ,
375 2 rho ,rho0 ,amu ,amu2 ,espe ,
376 3 dvol ,df ,vnew ,mat ,psh ,
377 4 pnew ,dpdm ,dpde ,temp ,
378 5 bufmat ,sig ,muold ,12 ,
379 6 npc ,tf ,vareos ,nvareos, mat_param, bid, nvartmp_eos,vartmp_eos)
380 CALL eosmain(1 ,nel ,eostyp ,pm ,off , ener ,
382 3 dvol ,df ,vnew ,mat ,psh ,
383 4 pnew ,dpdm ,dpde ,temp ,
384 5 bufmat ,sig ,muold ,12 ,
385 6 npc ,tf ,vareos ,nvareos, mat_param, bid, nvartmp_eos,vartmp_eos)
392 ssp(i) = sqrt(abs(dpdm(i))/rho0(i))
405 epsf(i) = epsf(i)+ e1(i)
406 sigf(i) = efib(i)*epsf(i)
416 IF(off(i) < em01) off(i)=zero
417 IF(off(i) < one) off(i)=off(i)*four_over_5
426 wvec(i)=(one-dam(i,1))*sigt1(i)
427 IF(t1(i) > wvec(i))
THEN
429 IF(epc(i,1) == zero)
THEN
430 epc(i,1)=
max(epe(i,1),zero)
432 epc(i,1)=
max(epc(i,1)+e1(i),zero)
436 t2(i)=t2(i)-d12(i)*e1(i)*dam(i,1)
437 t3(i)=t3(i)-d13(i)*e1(i)*dam(i,1)
441 dam(i,1)=
min((dam(i,1)+delta(i)),one)
442 IF(dam(i,1)>=one .AND. kd1(i)/=2)
THEN
447 IF(e1(i) < zero .AND. dam(i,1) > zero)
448 . epc(i,1)=
max(epc(i,1)+e1(i),zero)
452 wvec(i)=(one-dam(i,2))*sigt2(i)
453 IF(t2(i) > wvec(i))
THEN
455 IF(epc(i,2)==zero)
THEN
456 epc(i,2)=
max(epe(i,2),zero)
461 t1(i)=t1(i)-d12(i)*e2(i)*dam(i,2)
463 t3(i)=t3(i)-d23(i)*e2(i)*dam(i,2)
467 dam(i,2)=
min((dam(i,2)+delta(i)),one)
468 IF(dam(i,2) >= one .AND. kd2(i) /= 2)
THEN
473 IF(e2(i) < zero .AND. dam(i,2) > zero)
474 . epc(i,2)=
max(epc(i,2)+e2(i),zero)
478 wvec(i)=(one-dam(i,3))*sigt3(i)
479 IF(t3(i) > wvec(i))
THEN
481 IF(epc(i,3)==zero)
THEN
482 epc(i,3)=
max(epe(i,3),zero)
484 epc(i,3)=
max(epc(i,3)+e3(i),zero)
487 t1(i)=t1(i)-d13(i)*e3(i)*dam(i,3)
488 t2(i)=t2(i)-d23(i)*e3(i)*dam(i,3)
493 dam(i,3)=
min((dam(i,3)+delta(i)),one)
494 IF(dam(i,3) >= one .AND. kd3(i) /= 2)
THEN
499 IF(e3(i)<zero .AND. dam(i,3)>zero)
500 . epc(i,3)=
max(epc(i,3)+e3(i),zero)
507 IF(t1(i) < zero.AND. epc(i,1) > zero)
THEN
509 t2(i)=t2(i)-d12(i)*e1(i)*dam(i,1)
510 t3(i)=t3(i)-d13(i)*e1(i)*dam(i,1)
512 IF(t2(i) < zero.AND. epc(i,2) > zero)
THEN
513 t1(i)=t1(i)-d12(i)*e2(i)*dam(i,2)
515 t3(i)=t3(i)-d23(i)*e2(i)*dam(i,2)
517 IF(t3(i) < zero.AND.epc(i,3) > zero)
THEN
519 t1(i)=t1(i)-d13(i)*e3(i)*dam(i,3)
520 t2(i)=t2(i)-d23(i)*e3(i)*dam(i,3)
527 wvec(i)= f1(i)*t1(i) + f2(i)*t2(i) + f3(i)*t3(i)
528 . + f11(i)*t1(i)*t1(i) + f22(i)*t2(i)*t2(i) + f33(i)*t3(i)*t3(i)
529 . + f55(i)*t5(i)*t5(i) + f44(i)*t4(i)*t4(i) + f66(i)*t6(i)*t6(i)
530 . + two*f12(i)*t1(i)*t2(i) + two*f13(i)*t1(i)*t3(i)
531 . + two*f23(i)*t2(i)*t3(i)
533 tsaiwu(i)=
max(
min(wvec(i)/sigmy(i),one),tsaiwu(i))
540 IF (wvec(i) > sigmy(i) .and .off(i) == one)
THEN
549 dp1(i)=f1(i) + two*f11(i)*so1(i) + two*f12(i)*so2(i)
550 . + two*f13(i)*so3(i)
551 dp2(i)=f2(i) + two*f22(i)*so2(i) + two*f12(i)*so1(i)
552 . + two*f23(i)*so3(i)
553 dp3(i)=f3(i) + two*f33(i)*so3(i) + two*f13(i)*so1(i)
554 . + two*f23(i)*so2(i)
555 dp4(i)=two*f44(i)*so4(i)
556 dp5(i)=two*f55(i)*so5(i)
557 dp6(i)=two*f66(i)*so6(i)
560 3101
FORMAT(/
' 205 WVEC SIGMY T1-T6 ',2e11.4/6e11.4)
561 3102
FORMAT(
' F1 F2 F11 F22 F12 F23 F44 F55',3e11.4/5e11.4)
573 lamda(i)=(dp1(i)*ds1(i)+dp2(i)*ds2(i)+dp3(i)*ds3(i)
574 . +dp4(i)*ds4(i)+dp5(i)*ds5(i)+dp6(i)*ds6(i))*coef(i)
577 3103
FORMAT(
' 207 LAMDA DS1-DS6 ',e11.4/6e11.4)
582 IF(pla(i) > zero) plas(i)=pla(i)**cnn(i)
586 IF(lamda(i)/= zero)
THEN
587 lamda(i)=lamda(i)*coef(i)/
588 . (dp1(i)*(d11(i)*dp1(i)+d12(i)*dp2(i)+d13(i)*dp3(i))+
589 . dp2(i)*(d12(i)*dp1(i)+d22(i)*dp2(i)+d23(i)*dp3(i))+
590 . dp3(i)*(d13(i)*dp1(i)+d23(i)*dp2(i)+d33(i)*dp3(i))+
591 . two*dp4(i)*g12(i)*dp4(i)+
592 . two*dp5(i)*g23(i)*dp5(i)+
593 . two*dp6(i)*g31(i)*dp6(i)+
594 . (so1(i)*dp1(i)+so2(i)*dp2(i)+so3(i)*dp3(i)+
595 . two*so4(i)*dp4(i)+two*so5(i)*dp5(i)+two*so6(i)*dp6(i))
596 . *cn(i)*cb(i)*plas(i) )
601 3104
FORMAT(
' 208 LAMDA ',e11.4)
604 dp1(i)=lamda(i)*dp1(i)
605 dp2(i)=lamda(i)*dp2(i)
606 dp3(i)=lamda(i)*dp3(i)
607 dp4(i)=lamda(i)*dp4(i)
608 dp5(i)=lamda(i)*dp5(i)
609 dp6(i)=lamda(i)*dp6(i)
611 3105
FORMAT(
' 209 PLA DP1-DP6',e11.4/6e11.4)
614 epe(i,1)=epe(i,1)-dp1(i)
615 epe(i,2)=epe(i,2)-dp2(i)
616 epe(i,3)=epe(i,3)-dp3(i)
620 t1(i)=t1(i)-d11(i)*dp1(i)-d12(i)*dp2(i)-d13(i)*dp3(i)
621 t2(i)=t2(i)-d12(i)*dp1(i)-d22(i)*dp2(i)-d23(i)*dp3(i)
622 t3(i)=t3(i)-d13(i)*dp1(i)-d23(i)*dp2(i)-d33(i)*dp3(i)
623 t4(i)=t4(i)-g12(i)*dp4(i)*two
624 t5(i)=t5(i)-g23(i)*dp5(i)*two
625 t6(i)=t6(i)-g31(i)*dp6(i)*two
632 . (dp1(i)*(t1(i)+so1(i))+
633 . dp2(i)*(t2(i)+so2(i))+
634 . dp3(i)*(t3(i)+so3(i))+
635 . two*dp4(i)*(t4(i)+so4(i))+
636 . two*dp5(i)*(t5(i)+so5(i))+
637 . two*dp6(i)*(t6(i)+so6(i)))
638 dwpla =
max(dwpla ,zero) / wplaref
639 pla(i) = pla(i) + dwpla
640 pla(i)=
max(pla(i),zero)
648 CALL m14ftg(sig,ax ,ay ,az ,bx ,by ,
649 2 bz ,cx ,cy ,cz ,t1 ,t2 ,
650 3 t3 ,t4 ,t5 ,t6 ,nel)
653 sig(i,1)=sig(i,1)*off(i)
654 sig(i,2)=sig(i,2)*off(i)
655 sig(i,3)=sig(i,3)*off(i)
656 sig(i,4)=sig(i,4)*off(i)
657 sig(i,5)=sig(i,5)*off(i)
658 sig(i,6)=sig(i,6)*off(i)
665 eint(i)=eint(i)+dt5*vnew(i)*
666 . ( d1(i)*(sold1(i)+sig(i,1))
667 . + d2(i)*(sold2(i)+sig(i,2))
668 . + d3(i)*(sold3(i)+sig(i,3))
669 . + d4(i)*(sold4(i)+sig(i,4))
670 . + d5(i)*(sold5(i)+sig(i,5))
671 . + d6(i)*(sold6(i)+sig(i,6)))
672 eint(i)=eint(i)/vol(i)
673 dam(i,5)=kd1(i)*1000 + kd2(i)*100 + kd3(i)*10 + kd4(i) + 10000
677 sigym =
max(em20,half*(one/f11(i)+one/f22(i)))
678 sigy(i)=sigmy(i)*sqrt(sigym)
682 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
683 6001
FORMAT(i6,
' FAIL(14) E(',i5,
') M(',a3,
') T(',6e10.3,
')')