31 1 JFT ,JLT ,PM ,FOR ,MOM ,
32 2 THK ,EINT ,OFF ,DT1C ,ISRATE ,
33 3 G ,A1 ,A2 ,VOL0 ,NU ,
34 4 THK0 ,GS ,EPSP ,IOFC ,KFTS ,
35 5 NGL ,INDX ,IPLA ,IR ,IS ,
36 6 DEGMB ,DEGFX ,DEPSXX ,DEPSYY ,MX ,
37 7 DEPSXY ,DEPSYZ ,DEPSZX ,DEPBXX ,DEPBYY ,
38 8 DEPBXY ,SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,
39 9 SIGOZX ,MOMOXX ,MOMOYY ,MOMOXY ,SIGNXX ,
40 A SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,MOMNXX ,
41 B MOMNYY ,MOMNXY ,ETSE ,EXZ ,EYZ ,
42 C NEL ,IOFF_DUCT,VP , NUVAR ,UVAR)
49!-----------------------------------------------
50#include "implicit_f.inc"
67! d u m m y a r g u m e n t s
69 INTEGER JFT,JLT,IOFC,KFTS,NLAY,IR,IS,NEL
70 INTEGER NGL(MVSIZ),INDX(MVSIZ),
72 INTEGER,
INTENT(IN) :: NUVAR ,VP
73 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: UVAR
76 . PM(NPROPM,*),FOR(NEL,5),MOM(NEL,3),(JLT,2),
77 . OFF(*),DT1C(*),NU(*),G(*),A1(*),A2(*),
78 . VOL0(*),THK0(*),GS(*),EPSP(*)
80 . DEPSXX(NEL),DEPSYY(NEL),DEPSXY(NEL),
81 . depsyz(nel),depszx(nel),
82 . depbxx(nel),depbyy(nel),depbxy(nel),
83 . sigoxx(nel),sigoyy(nel),sigoxy(nel),
84 . sigoyz(nel),sigozx(nel),
85 . momoxx(nel),momoyy(nel),momoxy(nel),
86 . degmb(mvsiz),degfx(mvsiz),exz(*),eyz(*)
89 . signxx(nel),signyy(nel),signxy(nel),
90 . momnxx(nel),momnyy(nel),momnxy(nel),
91 . signyz(nel),signzx(nel),
92 . sigvxx(nel),sigvyy(nel),etse(nel)
93 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
94!-----------------------------------------------
97 INTEGER ICC,IPLA,IRTY,ISRATE,NINDX,INDEX(MVSIZ)
100 . f1(mvsiz),f2(mvsiz),f3(mvsiz),f4(mvsiz),f5(mvsiz),z3
101 . m1(mvsiz),m2(mvsiz),m3(mvsiz),t(mvsiz),epmx,
102 . dwelm(mvsiz),dwelf(mvsiz),ca(mvsiz),cb(mvsiz),cn,
103 .
ymax(mvsiz),unsyeq(mvsiz),dwpla(mvsiz),
104 . hh(mvsiz),rr(mvsiz),c1,c2,c3,cc,epdr(mvsiz),cp,
106 . s1(mvsiz),s2(mvsiz),svm(mvsiz),nnu1(mvsiz),nu1(mvsiz),
107 . nu2(mvsiz),nu3(mvsiz),dpla_j(mvsiz),sm1(mvsiz),sm2(mvsiz),
108 . am(mvsiz),bm(mvsiz),anm(mvsiz),bnm(mvsiz),qtier(mvsiz),
109 . num1(mvsiz),num2(mvsiz),an(mvsiz),bn(mvsiz),
110 . gama(mvsiz),gama2(mvsiz),lfn(mvsiz),qfn(mvsiz),qfnm(mvsiz),
111 . degmb_loc(mvsiz),degsh_loc(mvsiz),degfx_loc(mvsiz),yld(mvsiz),
112 . logep(mvsiz),plap(mvsiz)
113 my_real :: dpla_i,dr,a,b,f,df,yld_i,cp1,cq1,cp2,cq2,sm3,fnm,
114 . da,db,a_i,b_i,pn,qn,sn1,sn2,s,mm1,mm2,
115 . dfnp,dfnq,dfmp,dfmq,dfnmp,dfnmq,xp,xq,xpg,xqg,
116 . qnm1,qnm2,fnp,fnq,fmp,fmq,fnmp,fnmq,s3,aa,bb,plap1,
117 . thk12,ezz,aaa,bbb,ccc,fact,aux,epif,asrate,
118 . ms,fs,d1,d2,mt,tmelt,tref,tstar,ca_1,cb_1,ymax_1
119 my_real :: dpla(mvsiz)
120 TYPE(l_bufel_) ,
POINTER :: LBUF
124 LBUF => elbuf_str%BUFLY(1)%LBUF(ir,is,1)
127 epif =
max(epif,pm(43,mx))
138 icc = nint(pm(49,mx))
139 irty = nint(pm(50,mx))
145 IF (cp > zero) cp = one / cp
153 asrate =
min(one,pm(9,mx)*dt1c(i))
163 epdr(i)=
max(em20,aux)
167 aux = pm(44,mx)*dt1c(i)
168 epdr(i)=
max(em20,aux)
176 degsh_loc(i) = for(i,4)*eyz(i)+for(i,5)*exz(i)
177 degmb_loc(i) = degmb(i) - degsh_loc(i)
178 degfx_loc(i) = degfx(i)
180 f1(i) = sigoxx(i)+ a1(i)*depsxx(i)+a2(i)*depsyy(i)
181 f2(i) = sigoyy(i)+ a1(i)*depsyy(i)+a2(i)*depsxx(i)
182 f3(i) = sigoxy(i)+ g(i) *depsxy(i)
183 f4(i) = sigoyz(i) + gs(i)*depsyz(i)
184 f5(i) = sigozx(i) + gs(i)*depszx(i)
186 thk12 = thk0(i)*one_over_12
187 m1(i) = momoxx(i) + (a1(i)*depbxx(i)+a2(i)*depbyy(i
188 m2(i) = momoyy(i) + (a1(i)*depbyy(i)+a2(i)*depbxx(i))*thk12
189 m3(i) = momoxy(i) + g(i)*depbxy(i)*thk12
194 . sqrt(
max(sixteen*(ms*ms + three*(m3(i)*m3(i) - m1(i)*m2(i)))
195 . + fs*fs + three*(f3(i)*f3(i) - f1(i)*f2(i)),em20))
200 IF (epif /= zero)
THEN
207 plap(i) =
max(plap(i),epdr(i))
208 logep(i) = log(plap(i)/epdr(i))
211 IF (israte >= 1)
THEN
213 epspdt(i) = epsp(i)*dt1c(i)
214 epspdt(i) =
max(epspdt(i),em20)
215 logep(i) = log(epspdt(i)/epdr(i))
219 epspdt(i) = abs(degmb_loc(i)+degfx_loc(i)*thk0(i))*unsyeq
220 epspdt(i) =
max(epspdt(i),em20)
221 logep(i) = log(epspdt(i)/epdr(i))
227 t(i) = tref + cp*(eint(i,1)+eint(i,2))/vol0(i)
230 IF (irty == zero)
THEN
233 epspdt(i) =
max(zero,epspdt(i))
234 tstar = (t(i)-tref)/(tmelt-tref)
235 IF (tstar > zero)
THEN
236 epspdt(i) = (one+cc * epspdt(i))*(one-tstar**mt)
238 epspdt(i) = (one+cc * epspdt(i))
240 epspdt(i) =
max(em20,epspdt(i))
241 IF (icc == 1)
ymax(i) =
ymax(i)*epspdt(i)
243 ELSEIF (irty == 1)
THEN
245 epspdt(i) = cc*exp((-z3+z4 * epspdt(i))*t(i))
246 IF (icc == 1)
ymax(i) =
ymax(i) + epspdt(i)
247 ca(i) = ca(i) + epspdt(i)
261 yld(i) = ca(i)+cb(i)*exp(cn * log(lbuf%PLA(i)+ em30))
262 yld(i) =
min(yld(i)*epspdt(i),
ymax(i))
263 rr(i) =
min(one,yld(i)*unsyeq(i))
269 IF (rr(i) < one)
THEN
270 IF (yld(i) >=
ymax(i))
THEN
273 hh(i) = cn*cb(i)*exp((cn-one)*log(lbuf%PLA(i)+em30))
275 etse(i) = hh(i)/(hh(i)+ym)
287 dwelm(i) = (f1(i)+sigoxx(i))*(c1*d1+c2*d2)+
288 . (f2(i)+sigoyy(i))*(c2*d1+c1*d2)+
289 . (f3(i)+sigoxy(i))*(c3*(f3(i)-sigoxy(i)))
290 degmb_loc(i) = degmb_loc(i)+f1(i)*depsxx(i)+f2(i)*depsyy(i)
299 . (m1(i)+momoxx(i))*(c1*d1+c2*d2)
300 . +(m2(i)+momoyy(i))*(c2*d1+c1*d2)
301 . +(m3(i)+momoxy(i))*(c3*(m3(i)-momoxy(i))) )
302 degfx_loc(i) = degfx_loc(i)+ m1(i)*depbxx(i)+m2(i)*depbyy(i)
307 dwpla(i) = degmb_loc(i)+degfx_loc(i)*thk0(i)-dwelm(i)-dwelf(i)
313 dpla(i) = off(i)*
max(zero,half*epspdt(i)*dwpla(i)/yld(i))
314 lbuf%PLA(i) = lbuf%PLA(i) + dpla(i)
315 aaa = abs(dwelm(i)+dwelf(i))
316 bbb =
max(zero,dwpla(i))
317 ccc =
max(em20,aaa+bbb)
318 ezz = - (depsxx(i) + depsyy(i)) * (nu(i)*aaa/(one-nu(i)) + bbb)/ccc
319 thk(i) = thk(i) * (one + ezz*off(i))
323 plap1 = dpla(i)/
max(em20,dt1c(i))
324 plap(i) = asrate * plap1 + (one - asrate) * plap(i)
336 yld(i) = ca(i)+cb(i)*exp(cn * log(lbuf%PLA(i)+ em30))
340 yld(i) =
min(yld(i)*epspdt(i),
ymax(i))
344!-------------------------------------------------------------------------
347 ccc = exp(-twop6666666667*lbuf%PLA(i)*ym/yld(i))
348 gama(i) = two/(three-ccc)
349 gama2(i)= gama(i)*gama(i)
350 mm1 = thirty6*gama2(i)
351 mm2 = threep4641*gama(i)
352 qtier(i) = three*gama2(i)
353 nnu1(i) = nu(i)/(one-nu(i))
354 s1(i) = (f1(i)+f2(i))*half
355 s2(i) = (f1(i)-f2(i))*half
357 sm1(i) = (m1(i)+m2(i))*half
358 sm2(i) = (m1(i)-m2(i))*half
361 bn(i) = three*(s2(i)*s2(i)+s3*s3)
362 am(i) = sm1(i)*sm1(i)*mm1
363 bm(i) = three*(sm2(i)*sm2(i)+sm3*sm3)*mm1
364 anm(i) = s1(i)*sm1(i)*mm2
365 bnm(i) = three*(s2(i)*sm2(i)+s3*sm3)*mm2
366 svm(i) = sqrt(an(i)+bn(i)+am(i)+bm(i)+abs(anm(i)+bnm(i)))
367 ezz = -(depsxx(i)+depsyy(i))*nnu1(i)
368 thk(i) = thk(i) * (one + ezz*off(i))
376 IF (svm(i) > yld(i) .AND. off(i) == one)
THEN
386 nu1(i) = half*(one + nu(i))
387 nu2(i) = three_half *(one - nu(i))
388 nu3(i) = one - nnu1(i)
389 num1(i) = one + qtier(i)
390 num2(i) = fivep5*gama2(i)
392 qfn(i) = sixteenp5*gama2(i)*gama2(i)
394 IF (yld(i) >=
ymax(i))
THEN
397 hh(i) = cn*cb(i)*exp((cn-one)*log(lbuf%PLA(i)+ em30))
399 etse(i) = hh(i)/(hh(i)+ym)
400 dpla_j(i) = (svm(i)-yld(i))/(three*g(i)*qtier(i)+hh(i))
409 yld_i = yld(i)+hh(i)*dpla_i
410 dr = a1(i)*dpla_i/yld_i
413 da = num1(i)+num2(i)*xp
414 db = num1(i)+num2(i)*xq
415 dfnp = lfn(i)+qfn(i)*xp
416 dfnq = lfn(i)+qfn(i)*xq
417 dfmp = onep8333*(xp+one)
418 dfmq = onep8333*(xq+one)
423 a = one+(da+num1(i))*xp
424 b = one+(db+num1(i))*xq
429 fnp = one+(dfnp+lfn(i))*xp
430 fnq = one+(dfnp+lfn(i))*xq
431 fmp = one+(dfmp+onep8333)*xp
435 fnm = aa*fnmp*anm(i)+bb*fnmq*bnm
441 cp1 = (fnp*an(i)+s*fnmp*anm(i)+fmp*am(i))*aa
442 cq1 = (fnq*bn(i)+s*fnmq*bnm(i)+fmq*bm(i))*bb
443 cp2 = (dfnp*an(i)+s*dfnmp*anm(i)+dfmp*am(i))*aa
444 cq2 = (dfnq*bn(i)+s*dfnmq*bnm(i)+dfmq*bm(i))*bb
445 xpg = two*nu1(i)*da*a_i
446 xqg = two*nu2(i)*db*b_i
447 f = cp1 +cq1-yld_i*yld_i
448 df =(cp2*nu1(i)+cq2*nu2(i)-cp1*xpg-cq1*xqg)*
449 . (a1(i)-dr*hh(i))/yld_i-two*hh(i)*yld_i
450 dpla_j(i) =
max(zero,dpla_i-f/df)
458 lbuf%PLA(i) = lbuf%PLA(i) + dpla_j(i)
460 yld_i = yld(i)+hh(i)*dpla_i
461 dr = a1(i)*dpla_i/yld_i
466 a = one+num1(i)*xp+num2(i)*xpg
467 b = one+num1(i)*xq+num2(i)*xqg
472 fnmp = one+qfnm(i)*xpg
473 fnmq = one+qfnm(i)*xqg
474 fnm = aa*fnmp*anm(i)+bb*fnmq*bnm(i)
482 qnm2 = qnm1*one_over_12
483 sn1 = (s1(i)*(one +qtier(i)*xp)-sm1(i)*s*xp)*a_i
484 sn2 = (s2(i)*qn-sm2(i)*qnm1)*b_i
485 s3 = (f3(i)*qn-m3(i)*qnm1)*b_i
486 mm1 = (sm1(i)*(one+xp)-s1(i)*s*xp*one_over_12)*a_i
487 mm2 = (sm2(i)*(one+xq)-s2(i)*qnm2)*b_i
488 m3(i) = (m3(i)*(one+xq)-f3(i)*qnm2)*b_i
494 ezz = - nu3(i)*dr*sn1/ym
495 thk(i) = thk(i) * (one + ezz*off(i))
500 plap1 = dpla_j(i)/
max(em20,dt1c(i))
501 plap(i) = asrate * plap1 + (one - asrate) * plap(i)
510 IF (off(i) < em01) off(i) = zero
511 IF (off(i) < one) off(i) = off(i)*four_over_5
517 IF (off(i) < one) cycle
518 IF (lbuf%PLA(i) < epmx) cycle
526 IF (inconv == 1)
THEN
529 WRITE(iout, 1000) ngl(indx(j))
530 WRITE(istdo,1100) ngl(indx(j)),tt
531#include "lockoff.inc"
549 1000
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT NUMBER ',i10)
550 1100
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT :',i10,
' AT TIME :',g11.4)
subroutine sigeps02g(elbuf_str, jft, jlt, pm, for, mom, thk, eint, off, dt1c, israte, g, a1, a2, vol0, nu, thk0, gs, epsp, iofc, kfts, ngl, indx, ipla, ir, is, degmb, degfx, depsxx, depsyy, mx, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, etse, exz, eyz, nel, ioff_duct, vp, nuvar, uvar)