39 integer ithermal,icmd,i,k,l,m,n,kode,ivisco,ielastic,kel(4,21),
40 & niso,nkin,ielas,iel,iint,nstate_,mi(*),id,leximp,lend,layer,
41 & kspt,kstep,kinc,iloop,nmethod,user_hardening,user_creep
43 real*8 elconloc(21),elas(21),emec(6),beta(6),stre(6),
44 & vj,plconloc(802),stbl(6),stril(6),xitril(6),
45 & ee,un,um,al,cop,dxitril,xn(3,3),epl(6),
c1,c2,c3,c4,c7,
46 & c8,ftrial,xiso(200),yiso(200),xkin(200),ykin(200),
47 & fiso,dfiso,fkin,dfkin,fiso0,fkin0,ep,t1l,dtime,
48 & epini,a1,dsvm,xxa,xxn,dkl(3,3),el(6),tracee,traces,
49 & dcop,time,ttime,eloc(6),xstate(nstate_,mi(1),*),
50 & xstateini(nstate_,mi(1),*),decra(5),deswa(5),serd,
51 & esw(2),ec(2),p,qtild,predef(1),dpred(1),timeabq(2),pgauss(3),
52 & dtemp,pnewdt,um2,depvisc
55 kel=reshape((/1,1,1,1,1,1,2,2,2,2,2,2,1,1,3,3,2,2,3,3,3,3,3,3,
56 & 1,1,1,2,2,2,1,2,3,3,1,2,1,2,1,2,1,1,1,3,2,2,1,3,
57 & 3,3,1,3,1,2,1,3,1,3,1,3,1,1,2,3,2,2,2,3,3,3,2,3,
58 & 1,2,2,3,1,3,2,3,2,3,2,3/),(/4,21/))
59 dkl=reshape((/1.,0.,0.,0.,1.,0.,0.,0.,1./),(/3,3/))
69 epl(i)=xstateini(1+i,iint,iel)
70 stbl(i)=xstateini(7+i,iint,iel)
72 epini=xstateini(1,iint,iel)
77 al=um2*un/(1.d0-2.d0*un)
85 if((nmethod.ne.1).or.(ithermal.eq.3))
then 93 if((plconloc(801).lt.0.8d0).and.(plconloc(802).lt.0.8d0))
then 98 if((kode.eq.-52).and.(ivisco.eq.1))
then 99 if(elconloc(3).lt.0.d0)
then 103 xxa=elconloc(3)*(ttime+time)**elconloc(5)
104 if(xxa.lt.1.d-20) xxa=1.d-20
118 tracee=el(1)+el(2)+el(3)
120 stre(i)=um2*el(i)-beta(i)
123 stre(i)=stre(i)+al*tracee
128 traces=(stre(1)+stre(2)+stre(3))/3.d0
130 stril(i)=stre(i)-traces
139 xitril(i)=stril(i)-stbl(i)
146 dxitril=dxitril+xitril(i)*xitril(i)
149 dxitril=dxitril+2.d0*xitril(i)*xitril(i)
151 dxitril=dsqrt(dxitril)
158 niso=int(plconloc(801))
159 nkin=int(plconloc(802))
162 xiso(i)=plconloc(2*i-1)
163 yiso(i)=plconloc(2*i)
168 xkin(i)=plconloc(399+2*i)
169 ykin(i)=plconloc(400+2*i)
179 if((dabs(yiso(1)).lt.1.d-10).and.
180 & (dabs(yiso(2)).lt.1.d-10))
then 188 if(user_hardening.eq.1)
then 189 call uhardening(amat,iel,iint,t1l,epini,ep,dtime,
190 & fiso,dfiso,fkin,dfkin)
193 call ident(xiso,ep,niso,id)
196 elseif(id.eq.niso)
then 199 dfiso=(yiso(id+1)-yiso(id))/(xiso(id+1)-xiso(id))
200 fiso=yiso(id)+dfiso*(ep-xiso(id))
202 elseif(nkin.ne.0)
then 212 ftrial=dxitril-c2*fiso
213 if((ftrial.le.1.d-10).or.(ielas.eq.1).or.(ielastic.eq.1)
214 & .or.(dtime.lt.1.d-30))
then 219 xstate(1+i,iint,iel)=epl(i)
220 xstate(7+i,iint,iel)=stbl(i)
222 xstate(1,iint,iel)=ep
262 if(user_hardening.eq.1)
then 263 call uhardening(amat,iel,iint,t1l,epini,ep,dtime,
264 & fiso,dfiso,fkin,dfkin)
267 call ident(xiso,ep,niso,id)
271 elseif(id.eq.niso)
then 275 dfiso=(yiso(id+1)-yiso(id))/(xiso(id+1)-xiso(id))
276 fiso=yiso(id)+dfiso*(ep-xiso(id))
278 elseif(nkin.ne.0)
then 287 call ident(xkin,ep,nkin,id)
291 elseif(id.eq.nkin)
then 295 dfkin=(ykin(id+1)-ykin(id))/(xkin(id+1)-xkin(id))
296 fkin=ykin(id)+dfkin*(ep-xkin(id))
298 elseif(niso.ne.0)
then 307 if(dabs(cop).lt.1.d-10)
then 312 if((kode.eq.-51).or.(ivisco.eq.0))
then 313 dcop=(dxitril-c2*(fiso+fkin-fkin0)-um2*cop)/
314 & (um2+
c1*(dfiso+dfkin))
316 if(user_creep.eq.1)
then 317 if(ithermal.eq.0)
then 318 write(*,*)
'*ERROR in incplas: no temperature defined' 322 timeabq(2)=ttime+time
326 qtild=(dxitril-um2*cop)/c2-fiso-(fkin-fkin0)
330 if(qtild.lt.1.d-10) qtild=1.d-10
332 call creep(decra,deswa,xstateini(1,iint,iel),serd,ec,
333 & esw,p,qtild,t1l,dtemp,predef,dpred,timeabq,dtime,
334 & amat,leximp,lend,pgauss,nstate_,iel,iint,layer,kspt,
337 dcop=(decra(1)-c2*cop)/
338 & (c2*(decra(5)*(dfiso+um*(3.d0+dfkin/um))+1.d0))
340 qtild=(dxitril-um2*cop)/c2-fiso-(fkin-fkin0)
344 if(qtild.lt.1.d-10) qtild=1.d-10
345 decra(1)=a1*qtild**xxn
346 decra(5)=xxn*decra(1)/qtild
348 dcop=(decra(1)-c2*cop)/
349 & (c2*(decra(5)*(dfiso+um*(3.d0+dfkin/um))+1.d0))
354 if((dabs(dcop).lt.cop*1.d-4).or.
355 & (dabs(dcop).lt.1.d-10))
exit 360 if((iloop.gt.15).or.(cop.le.0.d0))
then 373 c7=c2*(fkin-fkin0)/dxitril
375 stbl(i)=stbl(i)-c7*xitril(i)
382 epl(i)=epl(i)+c7*xitril(i)
393 tracee=el(1)+el(2)+el(3)
395 stre(i)=um2*el(i)-beta(i)
398 stre(i)=stre(i)+al*tracee
404 c7=um2**2*cop/dxitril
406 if((kode.eq.-51).or.(ivisco.eq.0))
then 407 c8=um2**2/(um2+
c1*(dfiso+dfkin))
409 c8=um2**2/(um2+
c1*(dfiso+dfkin+1.d0/decra(5)))
414 c3=(c7-c8)/(dxitril**2)
431 elas(i)=
c1*(dkl(k,m)*dkl(l,n)+dkl(k,n)*dkl(l,m))
432 & +c2*dkl(k,l)*dkl(m,n)
433 & +c3*xn(k,l)*xn(m,n)
440 xstate(1+i,iint,iel)=epl(i)
441 xstate(7+i,iint,iel)=stbl(i)
443 xstate(1,iint,iel)=ep
447 depvisc=
max(depvisc,ep-epini)
subroutine ident(x, px, n, id)
Definition: ident.f:26
#define max(a, b)
Definition: cascade.c:32
static double * c1
Definition: mafillvcompmain.c:30
subroutine creep(decra, deswa, statev, serd, ec, esw, p, qtild, temp, dtemp, predef, dpred, time, dtime, cmname, leximp, lend, coords, nstatv, noel, npt, layer, kspt, kstep, kinc)
Definition: creep.f:22
subroutine uhardening(amat, iel, iint, t1l, epini, ep, dtime, fiso, dfiso, fkin, dfkin)
Definition: uhardening.f:21