41 2 SIGA, EPXA, GAMA, DAM,
42 3 ANG, EPS_F, VK0, STRAIN,
43 4 CRAK, DAMSUM, ROB, SIGC,
48 9 RHO, EPSVP, NEL, R11,
55#include "implicit_f.inc"
72 INTEGER,
INTENT(IN) :: JCVT
73 INTEGER,
INTENT(IN) :: JSPH
76 my_real PM(NPROPM), OFF(NEL), SIG(NEL,6), EINT(NEL), SIGA(NEL,3),
77 . EPXA(NEL,3), DAM(NEL,3), ANG(NEL,6), EPS_F(NEL,3), VK0(NEL),VK(NEL),
78 . STRAIN(NEL,6), CRAK(NEL,3), DAMSUM(NEL), (NEL), SIGC(NEL,6),
79 . RX(NEL),RY(NEL),RZ(NEL),SX(NEL),SY(NEL),SZ(NEL),PLA(NEL,7),
80 . D1(NEL), D2(NEL), D3(NEL), D4(NEL), D5(NEL), D6(NEL),SEQ(NEL),RHO(NEL),
82 my_real,
DIMENSION(NEL) :: R11,R12,R13,R21,R22,R23,R31,R32,R33
86 INTEGER I,J,I1,I2,ICAP,NBDAMA
87 INTEGER INDEX1(NEL), INDEX2(NEL),DAMAI(NEL)
88 my_real :: yms,y0s,ets,vmax,epsmax,rt,arma,plus,diff,etest
89 my_real,
DIMENSION(3) :: dam0,eps_f0,crak0
90 my_real,
DIMENSION(6) :: ang0,sigc0
91 my_real,
DIMENSION(NEL) :: deps1,deps2,deps3,deps4,deps5,deps6,
92 . arm1,arm2,arm3,scle1, scle2, scle3,scal1, scal2, scal3,
93 . h1, h2, h3, h4, h5, h6, s01, s02, s03, s04, s05, s06,
94 . sm, dsm, s1,s2,s3,s4,s5,s6,de1,de2, de3, c44, c55, c66
95 my_real,
DIMENSION(NEL,3,3)
100 strain(i,2) = strain(i,2) + d2
101 strain(i,3) = strain(i,3) + d3(i)*dt1
102 strain(i,4) = strain(i,4) + d4(i)*dt1
103 strain(i,5) = strain(i,5) + d5(i)*dt1
104 strain(i,6) = strain(i,6) + d6(i)*dt1
118 yms = pm(50) !young modulus
125 arma = arma + arm1(i) + arm2(i) + arm3(i)
131 3 r11, r12, r13, r21,
132 4 r22, r23, r31, r32,
135 CALL gloa24(nel,strain,dt1,arm1,arm2,arm3,
137 . r11,r12,r13,r21,r22,
139 . deps1,deps2,deps3,deps4,deps5,deps6)
141 IF (arma > zero )
THEN
142 CALL carm24(nel,yms,y0s,ets,
143 . epxa,siga,deps1,deps2,deps3,
153 . cdam ,sigc ,dam ,ang ,eps_f,crak ,
154 . c44 ,c55 ,c66 ,de1 ,de2 ,de3 ,
155 . deps1,deps2,deps3,deps4,deps5,deps6,
156 . s01 ,s02 ,s03 ,s04 ,s05 ,s06 ,
161 CALL crit24(nel,pm,sigc,vk0,vk,off,
163 . s01,s02,s03,s04,s05,s06,
164 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
165 . scal1,scal2,scal3,scle1,scle2,scle3,
174 IF (off(i) /= zero)
THEN
178 IF (scle3(i) < zero)
THEN
188 ELSEIF (sm(i) + scle2(i)*dsm(i) >= rt)
THEN
195 IF (dam(i,1) == zero .or. dam(i,2) == zero .or. dam(i,3) == zero)
THEN
202 ELSEIF (strain(i,1) + strain(i,2) + strain(i,3) > vmax)
THEN
221 CALL dama24(nel ,i1 ,index1,ngl ,pm ,scle2 ,
222 . sigc ,dam ,ang ,eps_f ,crak ,cdam ,
223 . s01 ,s02 ,s03 ,s04 ,s05 ,s06 ,
224 . deps1 ,deps2 ,deps3 ,deps4 ,deps5 ,deps6 ,
225 . de1 ,de2 ,de3 ,scal1 ,scal2 ,scal3 )
230 CALL plas24(nel ,i2 ,index2,ngl ,pm ,
232 . rho ,eint ,vk0 ,vk ,rob ,cdam ,
233 . deps1 ,deps2 ,deps3 ,deps4 ,deps5 ,deps6 ,
234 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
235 . scal1 ,scal2 ,scal3 ,scle2 )
237 CALL plas24b(nel ,i2 ,index2,ngl ,pm ,
238 . sigc ,dam ,crak ,epsvp ,cdam ,
239 . rho ,eint ,vk0 ,vk ,rob ,pla ,
240 . deps1 ,deps2 ,deps3 ,deps4 ,deps5 ,deps6 ,
241 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
242 . scal1 ,scal2 ,scal3 ,scle2 )
255 damsum(1:nel) = dam(1:nel,1) + dam(1:nel,2) + dam(1:nel,3)
261 IF(off(i) < em01) off(i)=zero
262 IF(off(i) < one) off(i)=off(i)*four_over_5
268 IF (off(i)>=one)
THEN
269 etest=
max(crak(i,1),crak(i,2),crak(i,3))
270 IF(etest>=epsmax)
THEN
271 off(i)=off(i)*four_over_5
280 plus=strain(i,1)+strain(i,2)
281 diff=strain(i,1)-strain(i,2)
282 etest=half*(plus+sqrt(diff**2+strain(i,4)**2))
283 IF (etest>=epsmax)
THEN
284 off(i) = off(i)*four_over_5
296 WRITE(iout,1000) ngl(i)
297 WRITE(istdo,1000)ngl(i)
298#include "lockoff.inc"
306 IF (damsum(i) > zero)
THEN
312 CALL udam24n(sig,ang,nbdama,damai,nel)
315 IF (arma > zero)
THEN
317 sig(i,1) = sig(i,1) * (one - arm1(i)) + arm1(i)*siga(i,1)
318 sig(i,2) = sig(i,2) * (one - arm2(i)) + arm2(i)*siga(i,2)
319 sig(i,3) = sig(i,3) * (one - arm3(i)) + arm3(i)*siga(i,3)
323 CALL aglo24(nel,sig,r11,r12,r13,
324 . r21,r22,r23,r31,r32,r33)
327 sig(i,1)=sig(i,1)*off(i)
328 sig(i,2)=sig(i,2)*off(i)
329 sig(i,3)=sig(i,3)*off(i)
330 sig(i,4)=sig(i,4)*off(i)
331 sig(i,5)=sig(i,5)*off(i)
332 sig(i,6)=sig(i,6)*off(i)
335 1000
FORMAT(1x,
'*** TOTAL FAILURE ELEMENT #',i10)
subroutine conc24(pm, off, sig, eint, siga, epxa, gama, dam, ang, eps_f, vk0, strain, crak, damsum, rob, sigc, vk, pla, ngl, d1, d2, d3, d4, d5, d6, rx, ry, rz, sx, sy, sz, seq, rho, epsvp, nel, r11, r12, r13, r21, r22, r23, r31, r32, r33, jcvt, jsph)