36 2 RHO, QOLD, EPXE, EPD,
37 3 VOL, PDAM, STIFN, DT2T,
38 4 NELTST, ITYPTST, OFFG, GEO,
39 5 PID, AMU, VOL_AVG, MUMAX,
40 6 MAT, NGL, SSP, DVOL,
41 7 AIRE, VNEW, VD2, DELTAX,
44 A PSH, QNEW, SSP_EQ, SOLD1,
45 B SOLD2, SOLD3, SOLD4, SOLD5,
46 C SOLD6, IPLA, SIGY, DEFP,
47 D DPLA, MSSA, DMELS, CONDE,
48 E DTEL, G_DT, NEL, IPM,
49 F RHOREF, RHOSP, NFT, JSPH,
50 G ITY, JTUR, JTHE, ISMSTR,
51 H JSMS, NPG , glob_therm,
57 USE prop_param_mod ,
only : n_var_igeo
61#include "implicit_f.inc"
78 INTEGER,
INTENT(IN) ::
79 INTEGER,
INTENT(IN) :: JSMS
80 INTEGER,
INTENT(IN) :: ITY
81 INTEGER,
INTENT(IN) :: JTUR
82 INTEGER,
INTENT(IN) :: JTHE
83 INTEGER,
INTENT(IN) :: NFT
84 INTEGER,
INTENT(IN) :: JSPH,NPG
85 INTEGER,
INTENT(IN) :: NUMGEO
86 INTEGER NELTST,ITYPTST ,PID(*), G_DT
87 INTEGER MAT(*),NGL(*),IPLA,NEL,IPM(NPROPMI,*)
93 . (NPROPM,*), OFF(*), SIG(NEL,6), EINT(*), RHO(*), QOLD(*),
94 . EPXE(*), EPD(*), VOL(*),STIFN(*), OFFG(*),GEO(NPROPG,*) ,
95 . MUMAX(*), SIGY(*), DEFP(*), DPLA(MVSIZ),
98 . vnew(*), vd2(*), deltax(*), ssp(*), aire(*), vis(*),
99 . psh(*), pnew(1), qnew(*) ,ssp_eq(*),
100 . d1(*), d2(*), d3(*), d4(*), d5(*), d6(*),
101 . sold1(mvsiz), sold2(mvsiz), sold3(mvsiz),
102 . sold4(mvsiz), sold5(mvsiz), sold6(mvsiz),
103 . mssa(*), dmels(*), conde(*),
dtel(*),
104 . rhoref(*) ,rhosp(*)
105 type (glob_therm_) ,
intent(inout) :: glob_therm
106 integer,
dimension(n_var_igeo,numgeo),
intent(in) :: igeo
110 INTEGER ICC(MVSIZ), I, MX, II,ICC_1
113 . G(MVSIZ),AK(MVSIZ),
114 . QH(MVSIZ), C1(MVSIZ),
115 . p(mvsiz), epmx(mvsiz),
116 . ca(mvsiz), cb(mvsiz), cc(mvsiz), cn(mvsiz),
118 . dvol(mvsiz), sigmx(mvsiz),
119 . ce(mvsiz),epsl(mvsiz), ql(mvsiz), yldl(mvsiz), aj2(mvsiz),
121 . e1, e2, e3, e4, e5, e6, g1, g2,
122 . epsp, hl, depsl, alpe, dav, scale, bid1, bid2,
123 . bid3, einc, dta,facq0,
124 . rho0_1,c1_1,ca_1,cb_1,cn_1,
125 . epmx_1,sigmx_1,cc_1,epdr_1,epsl_1,
143 icc_1 =nint(pm(49,mx))
146 g0(i) =pm(22,mx)*off(i)
175 icc_1 =nint(pm(49,mx))
178 g0(i) =pm(22,mx)*off(i)
195 epd(i)=off(i) *
max( abs(d1(i)), abs(d2(i)), abs(d3(i)), half*abs(d4(i)),half*abs(d5(i)),half*abs(d6(i)))
196 epsp =
max(epd(i),epdr(i))
197 ce(i) = one +cc(i) * log(epsp/epdr(i))
203 ak(i)= ca(i)+cb(i)*epxe(i)
206 IF(epxe(i)>zero)
THEN
207 ak(i)=ca(i)+cb(i)*epxe(i)**cn(i)
209 qh(i)= (cb(i)*cn(i)*epxe(i)**(cn(i)-one))*ce(i)
211 qh(i)= (cb(i)*cn(i)/epxe(i)**(one - cn(i)))*ce(i)
219 IF(epxe(i)>epmx(i))ak(i)=zero
220 IF(epxe(i)>epsl(i))qh(i)=ql(i)
225 ak(i)= ca(i)+cb(i)*epxe(i)
227 IF(epxe(i)>zero)
THEN
228 ak(i)=ca(i)+cb(i)*epxe(i)**cn(i)
234 IF(epxe(i)>epmx(i))ak(i)=zero
240 ak(i) =
min(ak(i),sigmx(i))
241 hl = three*g0(i)*ql(i)/(three*g0(i)+ql(i))
242 depsl =
max(zero,epxe(i)-epsl(i))
243 ak(i) =
min(ak(i),yldl(i)+hl*depsl)
244 ak(i) =
max(ak(i),zero)
245 alpe =
min(one,ak(i)/
max(ak(i)+three*g0(i)*depsl,em15))
247 IF(icc(i)==2) ak(i) =
min(ak(i),sigmx(i))
249 c1(i) = pdam*alpe*c1(i) + (1.-pdam)*c1(i)
250 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
253 ssp(i)=sqrt((onep333*g(i)+c1(i))/rho0(i))
257 dav =-third*(d1(i)+d2(i)+d3(i))
258 sig(i,1)=sig(i,1)+p(i)+g2*(d1(i)+dav)
259 sig(i,2)=sig(i,2)+p(i)+g2*(d2(i)+dav)
260 sig(i,3)=sig(i,3)+p(i)+g2*(d3(i)+dav)
261 sig(i,4)=sig(i,4)+g1*d4(i)
262 sig(i,5)=sig(i,5)+g1*d5(i)
263 sig(i,6)=sig(i,6)+g1*d6(i)
264 aj2(i)=half*(sig(i,1)**2+sig(i,2)**2+sig(i,3)**2)
265 1 +sig(i,4)**2+sig(i,5)**2+sig(i,6)**2
266 aj2(i)=sqrt(three*aj2(i))
270 ak(i) =
min(ak(i),sigmx(i))
271 depsl =
max(zero,epxe(i)-epsl(i))
272 ak(i) =
min(ak(i),yldl(i)+ql(i)*depsl)
273 ak(i) =
max(ak(i),zero)
274 alpe =
min(one,ak(i)/
max(ak(i) + three*g0(i)*depsl,em15))
276 IF(icc(i)==2) ak(i) =
min(ak(i),sigmx(i))
278 c1(i) = pdam*alpe*c1(i) + (one - pdam)*c1(i)
279 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
282 ssp(i)=sqrt((onep333*g(i)+c1(i))/rho0(i))
286 IF(epxe(i)>epsl(i).AND.three*g(i)<em15)
THEN
295 dav =-third*(d1(i)+d2(i)+d3(i))
296 sig(i,1)=sig(i,1)+p(i)+g2*(d1(i)+dav)
297 sig(i,2)=sig(i,2)+p(i)+g2*(d2(i)+dav)
298 sig(i,3)=sig(i,3)+p(i)+g2*(d3(i)+dav)
299 sig(i,4)=sig(i,4)+g1*d4(i)
300 sig(i,5)=sig(i,5)+g1*d5(i)
301 sig(i,6)=sig(i,6)+g1*d6(i)
302 aj2(i)=half*(sig(i,1)**2+sig(i,2)**2+sig(i,3)**2)+
303 . sig(i,4)**2+sig(i,5)**2+sig(i,6)**2
304 aj2(i)=sqrt(three*aj2(i))
309 ak(i) =
min(ak(i),sigmx(i))
310 depsl =
max(zero,epxe(i)-epsl(i))
311 ak(i) =
min(ak(i),yldl(i)+ql(i)*depsl)
312 ak(i) =
max(ak(i),zero)
313 alpe =
min(one,ak(i)/
max(ak(i) + three*g0(i)*depsl,em15))
315 IF(icc(i)==2) ak(i) =
min(ak(i),sigmx(i))
317 c1(i) = pdam*alpe*c1(i) + (one - pdam)*c1(i)
318 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
321 ssp(i)=sqrt((onep333*g(i)+c1(i))/rho0(i))
325 IF(epxe(i)>epsl(i).AND.g(i)*(three*g0(i)+qh(i))<em15)
THEN
334 dav =-third*(d1(i)+d2(i)+d3(i))
335 sig(i,1)=sig(i,1)+p(i)+g2*(d1(i)+dav)
336 sig(i,2)=sig(i,2)+p(i)+g2*(d2(i)+dav)
337 sig(i,3)=sig(i,3)+p(i)+g2*(d3(i)+dav)
338 sig(i,4)=sig(i,4)+g1*d4(i)
339 sig(i,5)=sig(i,5)+g1*d5(i)
340 sig(i,6)=sig(i,6)+g1*d6(i)
341 aj2(i)=half*(sig(i,1)**2+sig(i,2)**2+sig(i,3)**2)+
342 . sig(i,4)**2+sig(i,5)**2+sig(i,6)**2
343 aj2(i)=sqrt(three*aj2(i))
350 scale=
min(one,ak(i) /
max(aj2(i),em15))
351 sig(i,1)=scale*sig(i,1)
352 sig(i,2)=scale*sig(i,2)
353 sig(i,3)=scale*sig(i,3)
354 sig(i,4)=scale*sig(i,4)
355 sig(i,5)=scale*sig(i,5)
356 sig(i,6)=scale*sig(i,6)
357 epxe(i)=epxe(i)+(one -scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
358 dpla(i) = (one -scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
362 scale=
min(one,ak(i) /
max(aj2(i),em15))
363 sig(i,1)=scale*sig(i,1)
364 sig(i,2)=scale*sig(i,2)
365 sig(i,3)=scale*sig(i,3)
366 sig(i,4)=scale*sig(i,4)
367 sig(i,5)=scale*sig(i,5)
368 sig(i,6)=scale*sig(i,6)
369 epxe(i)=epxe(i)+(one -scale)*aj2(i)/
max(three*g(i),em15)
370 dpla(i) = (one -scale)*aj2(i)/
max(three*g(i),em15)
374 scale=
min(one,ak(i) /
max(aj2(i),em15))
375 dpla(i)=(one -scale)*aj2(i)*g0(i)/
max(g(i)*(three*g0(i)+qh(i)),em15)
376 ak(i)=
max(zero,ak(i)+dpla(i)*qh(i))
377 scale=
min(one,ak(i)/
max(aj2(i),em15))
378 sig(i,1)=scale*sig(i,1)
379 sig(i,2)=scale*sig(i,2)
380 sig(i,3)=scale*sig(i,3)
381 sig(i,4)=scale*sig(i,4)
382 sig(i,5)=scale*sig(i,5)
383 sig(i,6)=scale*sig(i,6)
384 epxe(i)=epxe(i)+dpla(i)
390 1 pm, off, rho, bid1,
391 2 bid2, ssp, bid3, stifn,
392 3 dt2t, neltst, ityptst, aire,
393 4 offg, geo, pid, vnew,
394 5 vd2, deltax, vis, d1,
396 7 mat, ngl, qnew, ssp_eq,
397 8 vol, mssa, dmels, igeo,
398 9 facq0, conde,
dtel, g_dt,
399 a ipm, rhoref, rhosp, nel,
400 b ity, ismstr, jtur, jthe,
401 c jsms, npg , glob_therm)
404 1 pm, off, rho, bid1,
405 2 bid2, bid3, stifn, dt2t,
406 3 neltst, ityptst, offg, geo,
407 4 pid, mumax, ssp, vnew,
408 5 vd2, deltax, vis, d1,
410 7 mat, ngl, qnew, ssp_eq,
411 8 g_dt,
dtel, nel, ity,
422 IF(pdam==one.AND.codvers>=42)
THEN
424 IF(off(i)<em01) off(i)=zero
425 IF(off(i)<one) off(i)=off(i)*four_over_5
429 IF(epmx(i)/=zero.AND.off(i)>=one.AND. epxe(i)>epmx(i))
THEN
430 off(i)=off(i)*four_over_5
433 WRITE(iout,1000) ngl(i)
434#include "lockoff.inc"
442 sig(i,1)=(sig(i,1)-pnew(i))*off(i)
443 sig(i,2)=(sig(i,2)-pnew(i))*off(i)
444 sig(i,3)=(sig(i,3)-pnew(i))*off(i)
445 sig(i,4)= sig(i,4)*off(i)
446 sig(i,5)= sig(i,5)*off(i)
447 sig(i,6)= sig(i,6)*off(i)
448 e1=d1(i)*(sold1(i)+sig(i,1))
449 e2=d2(i)*(sold2(i)+sig(i,2))
450 e3=d3(i)*(sold3(i)+sig(i,3))
451 e4=d4(i)*(sold4(i)+sig(i,4))
452 e5=d5(i)*(sold5(i)+sig(i,5))
453 e6=d6(i)*(sold6(i)+sig(i,6))
454 einc= vol_avg(i)*(e1+e2+e3+e4+e5+e6)*dta - half
455 eint(i)=(eint(i)+einc*off(i)) /
max(em15,vol(i))
461 sigy(i)=
max(sigy(i),ak(i))
464 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
subroutine m22law(pm, off, sig, eint, rho, qold, epxe, epd, vol, pdam, stifn, dt2t, neltst, ityptst, offg, geo, pid, amu, vol_avg, mumax, mat, ngl, ssp, dvol, aire, vnew, vd2, deltax, vis, d1, d2, d3, d4, d5, d6, pnew, psh, qnew, ssp_eq, sold1, sold2, sold3, sold4, sold5, sold6, ipla, sigy, defp, dpla, mssa, dmels, conde, dtel, g_dt, nel, ipm, rhoref, rhosp, nft, jsph, ity, jtur, jthe, ismstr, jsms, npg, glob_therm, numgeo, igeo)