31 SUBROUTINE dama24(NEL ,NINDX ,INDX ,NGL ,PM ,SCLE2 ,
32 . SIG ,DAM ,ANG ,EPS_F ,CRAK ,CDAM ,
33 . S01 ,S02 ,S03 ,S04 ,S05 ,S06 ,
34 . DEPS1 ,DEPS2 ,DEPS3 ,DEPS4 ,DEPS5 ,DEPS6 ,
35 . DE1 ,DE2 ,DE3 ,SCAL1 ,SCAL2 ,SCAL3 )
39#include "implicit_f.inc"
49 INTEGER INDX(NINDX),NGL(NEL)
50 my_real,
DIMENSION(NPROPM) :: PM
51 my_real,
DIMENSION(NEL) ,
INTENT(IN) :: S01,S02,S03,S04,S05,S06,
52 . deps1,deps2,deps3,deps4,deps5,deps6,de1,de2,de3,
53 . scal1,scal2,scal3,scle2
54 my_real ,
DIMENSION(NEL,3,3) ,
INTENT(OUT) :: cdam
55 my_real,
DIMENSION(NEL,6) ,
INTENT(INOUT) :: sig,ang
56 my_real,
DIMENSION(NEL,3) ,
INTENT(INOUT) :: eps_f,dam,crak
60 INTEGER I,J,K,IDEB,IDIR
61 my_real EPS(6), (6), DE(3), SCAL(3), SIGO(6), DIR(6),(6)
62 YOUNG, NU, G, DSUP, VMAX, QQ, AA, AC, EPST, SFTRY, DEN, DEPSF
110 IF (dam(i,1) > zero)
THEN
112 IF (dam(i,2) == zero)
THEN
114 CALL pri224(sigo,epstot,eps,dir(4),ang0)
118 CALL pri324(sigo,epstot,eps,dir)
123 sftry =
min(epstot(idir),epstot(idir)-scle2(i)*eps(idir),epst)
124 sftry =
max(sftry,fourth*epst)
126 IF (epstot(idir) < sftry)
THEN
128 WRITE(iout,
'(A,I1,A,I10,A,5X,A,E10.3,A,E10.3,A,E10.3)')
129 .
' FAILURE-',idir,
' ELEMENT #',ngl(i),
' FUNNY!',
130 .
' EPS_F ',sftry,
'EPSTOT',epstot(idir),
' EPST ',epst
131 WRITE(istdo,
'(A,I1,A,I10,A,5X,A,E10.3,A,E10.3,A,E10.3)')
132 .
' FAILURE-',idir,
' ELEMENT #',ngl(i),
' FUNNY!',
133 .
' EPS_F ',sftry,
'EPSTOT',epstot(idir),
' EPST ',epst
148 ang(i,1:6) = dir(1:6)
149 ELSEIF (idir == 2)
THEN
150 ang(i,4:6) = dir(4:6)
156 crak(i,k) = epstot(k)
157 depsf = epstot(k) - sftry
158 IF (depsf >= zero .AND. eps_f(i,k) < zero)
THEN
160 IF (dam(i,k-1) == zero) cycle
163 WRITE(iout,
'(A,I1,A,I10,A,3F6.3,A,3F6.3,A,E10.3,A,E10.3)')
164 .
' FAILURE-',k,
' ELEMENT #',ngl(i),
165 .
' VEC-1 ',ang(i,1),ang(i,2),ang(i,3),
166 .
' VEC-2 ',ang(i,4),ang(i,5),ang(i,6),
167 .
' EPS_F ',sftry,
' EPSTOT ',epstot(k)
168 WRITE(istdo,
'(A,I1,A,I10,A,3F6.3,A,3F6.3,A,E10.3,A,E10.3)')
169 .
' FAILURE-',k,
' ELEMENT #',ngl(i),
170 .
' VEC-1 ',ang(i,1),ang(i,2),ang(i,3),
171 .
' VEC-2 ',ang(i,4),ang(i,5),ang(i,6),
172 .
' EPS_F ',sftry,
' EPSTOT ',epstot(k)
176 dam(i,k) = qq * (one - eps_f(i,k) /
max(epstot(k),em20) )
177 dam(i,k) =
max(dam(i,k),em20)
178 dam(i,k) =
min(dam(i,k),dsup)
179 de(k) = one - dam(i,k)
194 . * (scal(1)*scal(2) + scal(2)*scal(3) + scal(3)*scal(1)
195 . + two*nu*scal(1)*scal(2)*scal(3))
197 cdam(i,1,1) = young*de(1)*(one-nu**2*scal(2)*scal(3))/den
198 cdam(i,2,2) = young*de(2)*(one-nu**2*scal(1)*scal(3))/den
199 cdam(i,3,3) = young*de(3)*(one-nu**2*scal(2)*scal(1))/den
200 cdam(i,1,2) = nu*young*scal(1)*scal(2)*(one+nu*scal(3))/den
201 cdam(i,2,3) = nu*young*scal(2)*scal(3)*(one+nu*scal(1))/den
202 cdam(i,1,3) = nu*young*scal(1)*scal(3)*(one+nu*scal(2))/den
203 cdam(i,2,1) = cdam(i,1,2)
204 cdam(i,3,1) = cdam(i,1,3)
205 cdam(i,3,2) = cdam(i,2,3)
207 sig(i,1) = cdam(i,1,1)*epstot(1)
208 . + cdam(i,1,2)*epstot(2)
209 . + cdam(i,1,3)*epstot(3)
210 sig(i,2) = cdam(i,2,1)*epstot(1)
211 . + cdam(i,2,2)*epstot(2)
212 . + cdam(i,2,3)*epstot(3)
213 sig(i,3) = cdam(i,3,1)*epstot(1)
214 . + cdam(i,3,2)*epstot(2)
215 . + cdam(i,3,3)*epstot(3)
216 sig(i,4) = scal(1)*scal(2)*sigo(4)
217 sig(i,5) = scal(2)*scal(3)*sigo(5)
218 sig(i,6) = scal(3)*scal(1)*sigo(6)
subroutine dama24(nel, nindx, indx, ngl, pm, scle2, sig, dam, ang, eps_f, crak, cdam, s01, s02, s03, s04, s05, s06, deps1, deps2, deps3, deps4, deps5, deps6, de1, de2, de3, scal1, scal2, scal3)