31 integer i,j,imat,ncmat_,ntmat_,k,l,nope,iflag,
32 & kode,niso,id,nplicon(0:ntmat_,*),npmat_,nelcon(2,*),
33 & iperturb(*),nmethod,mi(*),ne0,nstate_,nasym,
34 & iloc,jfaces,igauss,nopem,nopes,nopep,kscale
36 real*8 xl(3,19),elas(21),pproj(3),val,shp2m(7,9),
37 & al(3),s(60,60),voldl(0:mi(2),19),pl(3,19),xn(3),
38 &
c1,c3,alpha,beta,elcon(0:ncmat_,ntmat_,*),xm(3),
39 & fpu(3,3),xi,et,fnl(3),
40 & xs2(3,7),t1l,elconloc(21),plconloc(82),xk,stickslope,
41 & xiso(20),yiso(20),plicon(0:2*npmat_,ntmat_,*),
42 & springarea(2),t(3),tu(3,3),overlap,pres,dpresdoverlap,
43 & xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*),
44 & um,dftdt(3,3),tp(3),te(3),ftrial(3),clear,
45 & dftrial,dfnl,dfshear,dg,dte,alnew(3),dfn(3),reltime,
46 & xsj2s(3),xs2s(3,7),shp2s(7,9),weight,pslavsurf(3,*),
47 & pmastsurf(6,*),clearini(3,9,*)
49 intent(in) xl,imat,elcon,nelcon,
50 & ncmat_,ntmat_,nope,lakonl,t1l,kode,plicon,
51 & nplicon,npmat_,iperturb,springarea,nmethod,mi,ne0,
52 & nstate_,xstateini,reltime,nasym,
53 & iloc,jfaces,igauss,pslavsurf,pmastsurf,clearini
55 intent(inout) s,xstate,elas,voldl,elconloc
62 nopem=ichar(lakonl(8:8))-48
75 pl(j,i)=xl(j,i)+voldl(j,i)
83 pl(j,i)=xl(j,i)+voldl(j,i)+clearini(j,i-nopem,jfaces)
93 xi=pslavsurf(1,igauss)
94 et=pslavsurf(2,igauss)
95 weight=pslavsurf(3,igauss)
98 call shape9q(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
99 elseif(nopes.eq.8)
then 100 call shape8q(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
101 elseif(nopes.eq.4)
then 102 call shape4q(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
103 elseif(nopes.eq.6)
then 104 call shape6tri(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
105 elseif(nopes.eq.7)
then 106 call shape7tri(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
108 call shape3tri(xi,et,pl(1,nopem+1),xsj2s,xs2s,shp2s,iflag)
120 pl(k,nopep)=pl(k,nopep)+shp2s(4,j)*pl(k,nopem+j)
121 voldl(k,nopep)=voldl(k,nopep)+shp2s(4,j)*voldl(k,nopem+j)
125 xi=pmastsurf(1,igauss)
126 et=pmastsurf(2,igauss)
131 call shape9q(xi,et,pl,xm,xs2,shp2m,iflag)
132 elseif(nopem.eq.8)
then 133 call shape8q(xi,et,pl,xm,xs2,shp2m,iflag)
134 elseif(nopem.eq.4)
then 135 call shape4q(xi,et,pl,xm,xs2,shp2m,iflag)
136 elseif(nopem.eq.6)
then 137 call shape6tri(xi,et,pl,xm,xs2,shp2m,iflag)
138 elseif(nopem.eq.7)
then 139 call shape7tri(xi,et,pl,xm,xs2,shp2m,iflag)
141 call shape3tri(xi,et,pl,xm,xs2,shp2m,iflag)
150 pproj(i)=pproj(i)+shp2m(4,j)*pl(i,j)
158 al(i)=pl(i,nopep)-pproj(i)
163 xn(1)=pmastsurf(4,igauss)
164 xn(2)=pmastsurf(5,igauss)
165 xn(3)=pmastsurf(6,igauss)
169 clear=al(1)*xn(1)+al(2)*xn(2)+al(3)*xn(3)
170 if(nmethod.eq.1)
then 171 clear=clear-springarea(2)*(1.d0-reltime)
177 if(int(elcon(3,1,imat)).eq.1)
then 181 if(dabs(elcon(2,1,imat)).lt.1.d-30)
then 185 alpha=elcon(2,1,imat)*springarea(1)
187 if(-beta*clear.gt.23.d0-dlog(alpha))
then 188 beta=(dlog(alpha)-23.d0)/clear
190 elas(1)=dexp(-beta*clear+dlog(alpha))
191 elas(2)=-beta*elas(1)
193 elseif((int(elcon(3,1,imat)).eq.2).or.
194 & (int(elcon(3,1,imat)).eq.4))
then 198 elas(2)=-springarea(1)*elcon(2,1,imat)/kscale
199 elas(1)=elas(2)*clear
200 elseif(int(elcon(3,1,imat)).eq.3)
then 207 & elconloc,kode,plicon,nplicon,npmat_,plconloc,ncmat_)
209 niso=int(plconloc(81))
211 xiso(i)=plconloc(2*i-1)
212 yiso(i)=plconloc(2*i)
214 call ident(xiso,overlap,niso,id)
218 elseif(id.eq.niso)
then 222 dpresdoverlap=(yiso(id+1)-yiso(id))/(xiso(id+1)-xiso(id))
223 pres=yiso(id)+dpresdoverlap*(overlap-xiso(id))
225 elas(1)=springarea(1)*pres
226 elas(2)=-springarea(1)*dpresdoverlap
232 fnl(i)=-elas(1)*xn(i)
241 fpu(i,j)=-c3*xn(i)*xn(j)
247 if((ncmat_.ge.7).or.(int(elcon(3,1,imat)).eq.4))
then 251 if(int(elcon(3,1,imat)).eq.4)
then 256 stickslope=elcon(7,1,imat)/kscale
262 xk=stickslope*springarea(1)
268 alnew(i)=voldl(i,nopep)
270 alnew(i)=alnew(i)-shp2m(4,j)*voldl(i,j)
278 al(i)=alnew(i)-xstateini(3+i,1,ne0+iloc)
283 val=al(1)*xn(1)+al(2)*xn(2)+al(3)*xn(3)
288 t(i)=xstateini(6+i,1,ne0+iloc)+al(i)-val*xn(i)
295 xstate(3+i,1,ne0+iloc)=alnew(i)
296 xstate(6+i,1,ne0+iloc)=t(i)
310 dfnl=dsqrt(fnl(1)**2+fnl(2)**2+fnl(3)**2)
314 if(int(elcon(3,1,imat)).eq.4)
then 324 tp(i)=xstateini(i,1,ne0+iloc)
328 dte=dsqrt(te(1)*te(1)+te(2)*te(2)+te(3)*te(3))
335 dftrial=dsqrt(ftrial(1)**2+ftrial(2)**2+ftrial(3)**2)
339 if((dftrial.lt.dfshear) .or. (dftrial.le.0.d0))
then 344 fnl(i)=fnl(i)+ftrial(i)
345 xstate(i,1,ne0+iloc)=tp(i)
352 fpu(i,j)=fpu(i,j)+xk*tu(i,j)
359 dg=(dftrial-dfshear)/xk
362 fnl(i)=fnl(i)+dfshear*ftrial(i)
363 xstate(i,1,ne0+iloc)=tp(i)+dg*ftrial(i)
369 dfn(i)=-xn(1)*fpu(1,i)-xn(2)*fpu(2,i)-
373 c1=xk*dfshear/dftrial
376 dftdt(i,j)=-
c1*ftrial(i)*ftrial(j)
378 dftdt(i,i)=dftdt(i,i)+
c1 387 if((nmethod.ne.4).or.(iperturb(1).gt.1))
then 389 & um*ftrial(i)*dfn(j)
405 s(i+(k-1)*3,j+(l-1)*3)=
406 & shp2m(4,k)*shp2m(4,l)*fpu(i,j)
414 do k=nopem+1,nopem+nopes
416 do l=nopem+1,nopem+nopes
418 s(i+(k-1)*3,j+(l-1)*3)=shp2s(4,k-nopem)*
419 & shp2s(4,l-nopem)*fpu(i,j)
429 do l=nopem+1,nopem+nopes
431 s(i+(k-1)*3,j+(l-1)*3)=-shp2s(4,l-nopem)*
432 & shp2m(4,k)*fpu(i,j)
440 do k=nopem+1,nopem+nopes
444 s(i+(k-1)*3,j+(l-1)*3)=
445 & -shp2s(4,k-nopem)*shp2m(4,l)*fpu(i,j)
455 if((nasym.eq.0).or.((nmethod.eq.4).and.(iperturb(1).le.1)))
then 458 s(i,j)=(s(i,j)+s(j,i))/2.d0
subroutine ident(x, px, n, id)
Definition: ident.f:26
subroutine shape9q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape9q.f:20
subroutine shape8q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape8q.f:20
subroutine shape3tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape3tri.f:20
subroutine shape7tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape7tri.f:20
static double * c1
Definition: mafillvcompmain.c:30
subroutine shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
subroutine materialdata_sp(elcon, nelcon, imat, ntmat_, i, t1l, elconloc, kode, plicon, nplicon, npmat_, plconloc, ncmat_)
Definition: materialdata_sp.f:20
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20