29 1 SIGR ,IMAT ,ILAYER ,SIG ,NGL ,
34#include "implicit_f.inc"
48 INTEGER NGL(MVSIZ),IMAT
49 INTEGER JFT, JLT,ILAYER,ICHA,IFLAG,NEL
52 . pm(npropm,*),damt(nel,2),
53 . sigr(nel,6),sig(mvsiz,5)
58 INTEGER,
DIMENSION(MVSIZ) :: FAILURE
62 . sigt1(mvsiz),sigt2(mvsiz),sigc1(mvsiz),sigc2(mvsiz),
63 . sigr12(mvsiz),beta(mvsiz),sch1(mvsiz,5),taux,s1,s2,s3,
67 iflag = nint(pm(147,imat))
69 sigt1(i) = pm(141,imat)
70 sigt2(i) = pm(142,imat)
71 sigc1(i) = pm(143,imat)
72 sigc2(i) = pm(144,imat)
73 sigr12(i) = pm(145,imat)
75 sigt1(i) = pm(148,imat)
76 sigt2(i) = pm(149,imat)
77 sigc1(i) = pm(150,imat)
78 sigc2(i) = pm(151,imat)
79 sigr12(i) = pm(152,imat)
102 IF (damt(i,1) < one)
THEN
104 damt(i,1)=exp(-(tt-sigr(i,6))/tmax(i))
105 IF (damt(i,1) < em02) damt(i,1)=zero
107 ELSEIF (damt(i,2) < one)
THEN
109 damt(i,2)=exp(-(tt-sigr(i,6))/tmax(i))
110 IF (damt(i,2) < em02) damt(i,2)=zero
111 sig(i,2) = sigr(i,2)*damt(i,2)
112 sig(i,3) = sigr(i,3)*damt(i,2)
113 sig(i,4) = sigr(i,4)*damt(i,2)
114 sig(i,5) = sigr(i,5)*damt(i,2)
115 IF (sig(i,1)> zero)
THEN
116 ef2=(sig(i,1)/sigt1(i))**2 + beta(i)*(sig(i,3)/sigr12(i))**2
119 efc2 = (sig(i,1)/sigc1(i))**2
122 IF (ef2 >= one .OR. efc2 >= one)
THEN
126 sch1(i,2) = sigr(i,2)*damt(i,2)
127 sch1(i,3) = sigr(i,3)*damt(i,2)
128 sch1(i,4) = sigr(i,4)*damt(i,2)
129 sch1(i,5) = sigr(i,5)*damt(i,2)
137 IF (sig(i,1) > zero)
THEN
139 ef2=(sig(i,1)/sigt1(i))**2 + beta(i)*(sig(i,3)/sigr12(i))**2
143 efc2 = (sig(i,1)/sigc1(i))**2
146 IF (ef2 >= one .OR. efc2 >= one)
THEN
156! +
' FAILURE-',1,
' ELEMENT #',ngl(i),
163 IF (sig(i,2) >= zero)
THEN
165 em22=(sig(i,2)/sigc2(i))**2 + (sig(i,3)/sigr12(i))**2
169 emc2=(sig(i,2)/(two*sigr12(i)))**2
170 + +(sig(i,3)/sigr12(i))**2
171 + +sig(i,2)*((sigc2(i)/(two*sigr12(i)))**2-one)/sigc2(i)
174 IF (em22 >= one .OR. emc2 >= one)
THEN
192 sigr(i,1) = sch1(i,1)
193 sigr(i,2) = sch1(i,2)
194 sigr(i,3) = sch1(i,3)
195 sigr(i,4) = sch1(i,4)
196 sigr(i,5) = sch1(i,5)
200 IF(failure(i) == 1 )
THEN
201 WRITE(iout,
'(A,I1,A,I10,5X,A,I3,A,1PE11.4)')
202 +
' FAILURE-',1,
' ELEMENT #',ngl(i),
203 +
' LAYER #',ilayer,
' TIME=',tt
204 ELSEIF(failure(i) == 2 )
THEN
205 WRITE(iout,
'(A,I1,A,I10,5X,A,I3,A,1PE11.4)')
206 +
' FAILURE-',2,
' ELEMENT #',ngl(i),
207 +
' LAYER #',ilayer,
' TIME=',tt