31 1 JFT ,JLT ,NPT ,PM ,GEO,
33 3 PID ,EPSP ,EXX ,EXY ,EXZ,
34 4 KXX ,KYY ,KZZ ,AL ,NEL,
35 5 IPM ,ASRATE ,TIMESTEP,NUMMAT,SIGY)
43#include "implicit_f.inc"
54 INTEGER ,
INTENT(IN) :: IMAT,NUMMAT
55 INTEGER ,
DIMENSION(NPROPMI,NUMMAT) ,
INTENT(IN) :: IPM
56 INTEGER JFT,JLT,NPT,NEL
58 my_real ,
INTENT(IN) :: TIMESTEP
59 my_real ,
INTENT(IN) :: asrate
62 . exx(nel), exy(nel), exz(nel),
63 . kxx(nel), kyy(nel), kzz(nel),
64 . pm(npropm,*), geo(npropg,*), eint(nel,2),
65 . off(*),epsp(*), al(*)
66 my_real ,
INTENT(INOUT)::sigy(nel,npt)
68 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
72 INTEGER :: I,IPT,ICC,IRTY,IPY,IPZ,IPA,VP,IR,IS,ILAYER
74 my_real :: EPMX(NEL),CA(NEL), CB(NEL), CN(NEL), YMAX(NEL),
75 . T(NEL),Z3(NEL),CC(NEL),EPDR(NEL),
76 . YLD(NEL),ETSE(NEL),Q(NEL),E(NEL),G(NEL),
77 . ypt(nel),zpt(nel),apt(nel),vol(nel),dpla(nel),
78 . signxx(nel),signxy(nel),signxz(nel),logep(nel),
79 . depsxx(nel),depsxy(nel),depsxz(nel),plap(nel)
80 my_real :: tref,tmelt,cp,
81 . epif,svm1,gs,mt,tstar,umr,r,shfact,plap1,z4
83 TYPE(l_bufel_) ,
POINTER :: LBUF
84 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
99 irty = nint(pm(50,imat))
103 cp = one /
max(em20,pm(69,imat))
111 icc = nint(pm(49,imat))
118 epmx(i) = pm(41,imat)
119 ymax(i) = pm(42,imat)
122 epdr(i) =
max(em20,pm(44,imat))
124 epdr(i) =
max(em20,pm(44,imat)*dt1)
126 epif =
max(epif,cc(i))
128 epsp(i) =
max(epsp(i),epdr(i))
129 vol(i) = al(i)*geo(1,pid(i))
133 t(i) = tref + cp*(eint(i,1)+eint(i,2))/vol(i)
144 lbuf => elbuf_str%BUFLY(ilayer)%LBUF(ir,is,ipt)
145 bufly => elbuf_str%BUFLY(ilayer)
148 ypt(i) = geo(ipy+ipt,pid(i))
149 zpt(i) = geo(ipz+ipt,pid(i))
150 apt(i) = geo(ipa+ipt,pid(i))
153 signxx(i) = lbuf%SIG(ii(1)+i)
154 signxy(i) = lbuf%SIG(ii(2)+i)
155 signxz(i) = lbuf%SIG(ii(3)+i)
159 depsxx(i) = exx(i) - ypt(i)*kzz(i) + zpt(i)*kyy(i)
160 depsxy(i) = exy(i) + zpt(i)*kxx(i)
161 depsxz(i) = exz(i) - ypt(i)*kxx(i)
162 depsxy(i) = depsxy(i) / shfact
163 depsxz(i) = depsxz(i) / shfact
168 IF (bufly%L_STRA > 0)
THEN
170 lbuf%STRA(ii(1)+i) = lbuf%STRA(ii(1)+i) + depsxx(i)
171 lbuf%STRA(ii(2)+i) = lbuf%STRA(ii(2)+i) + depsxy(i)
172 lbuf%STRA(ii(3)+i) = lbuf%STRA(ii(3)+i) + depsxz(i)
180 signxx(i) = signxx(i) + e(i)*depsxx(i)
181 signxy(i) = signxy(i) + gs*depsxy(i)
182 signxz(i) = signxz(i) + gs*depsxz(i)
189 ymax(i) = pm(42,imat)
194 plap(i) = bufly%MAT(ir,is,ipt)%VAR(i)
195 plap(i) =
max(plap(i),epdr(i) )
196 logep(i) = log(plap(i)/epdr(i))
200 logep(i) = log(epsp(i)/epdr(i))
204 IF (epif /= zero)
THEN
208 tstar =
max(zero,(t(i)-tref)/(tmelt-tref))
209 IF (tstar == zero)
THEN
212 q(i) = (one + cc(i) * logep(i))*(one-exp(mt*log(tstar)))
217 IF (icc== 1) ymax(i) = ymax(i) * q(i)
219 ELSEIF (irty == 1)
THEN
222 q(i) = cc(i)*exp((-z3(i)+z4 * q(i))*t(i))
223 IF (icc == 1) ymax(i)= ymax(i) + q(i)
230 IF(lbuf%PLA(i) == zero)
THEN
233 yld(i)= ca(i) + cb(i)*exp(cn(i)*log(lbuf%PLA(i)))
235 yld(i) =
min(yld(i),ymax(i))
242 svm1 = signxx(i)**2 + three*(signxy(i)**2 + signxz(i)**2)
243 IF (svm1 > yld(i)**2)
THEN
245 r =
min( one, yld(i)/
max(em20,svm1) )
246 signxx(i) = signxx(i)*r
247 signxy(i) = signxy(i)*r
248 signxz(i) = signxz(i)*r
250 dpla(i) = svm1*umr/(e(i))
251 lbuf%PLA(i) = lbuf%PLA(i) + off(i)* dpla(i)
257 plap1 = dpla(i) /
max(em20,timestep)
258 bufly%MAT(ir,is,ipt)%VAR(i) = asrate * plap1 + (one - asrate) * plap(i)
269 IF (lbuf%PLA(i) >= epmx(i) .AND. off(i) == one)
THEN
276 lbuf%SIG(ii(1)+i) = signxx(i)
277 lbuf%SIG(ii(2)+i) = signxy(i)
278 lbuf%SIG(ii(3)+i) = signxz(i)
subroutine m2lawpi(elbuf_str, jft, jlt, npt, pm, geo, eint, off, imat, pid, epsp, exx, exy, exz, kxx, kyy, kzz, al, nel, ipm, asrate, timestep, nummat, sigy)
subroutine main_beam18(elbuf_str, nel, npt, mtn, imat, pid, ngl, pm, ipm, geo, off, for, mom, eint, al, epsd, bufmat, npf, tf, exx, exy, exz, kxx, kyy, kzz, f1, f2, f3, m1, m2, m3, jthe, tempel, ifail, sbufmat, snpc, stf, nummat, numgeo, iout, istdo, npropmi, npropm, npropg, time, dtime, idel7nok, isigi, imconv, ismstr, mat_param, ntable, table)