37 character*8 lakon(*),lakonl
38 character*80 amat,matname(*)
40 integer kon(*),konl(26),nea,neb,mi(*),mint2d,nopes,
41 & nelcon(2,*),nrhcon(*),nalcon(2,*),ielmat(mi(3),*),
42 & ielorien(mi(3),*),ntmat_,ipkon(*),ne0,iflag,null,kscale,
43 & istep,iinc,mt,ne,mattyp,ithermal(2),iprestr,i,j,k,m1,m2,jj,
44 & i1,m3,m4,kk,nener,indexe,nope,norien,iperturb(*),iout,
45 &
nal,icmd,ihyper,nmethod,kode,imat,mint3d,iorien,ielas,
46 & istiff,ncmat_,nstate_,ikin,ilayer,nlayer,ki,kl,ielprop(*),
47 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),npmat_,calcul_fn,
48 & calcul_cauchy,calcul_qa,nopered,mortar,jfaces,iloc,igauss
50 real*8 co(3,*),v(0:mi(2),*),shp(4,26),stiini(6,mi(1),*),
51 & stx(6,mi(1),*),xl(3,26),vl(0:mi(2),26),stre(6),prop(*),
52 & elcon(0:ncmat_,ntmat_,*),rhcon(0:1,ntmat_,*),xs2(3,7),
53 & alcon(0:6,ntmat_,*),vini(0:mi(2),*),
thickness,
54 & alzero(*),orab(7,*),elas(21),rho,fn(0:mi(2),*),
55 & fnl(3,10),skl(3,3),beta(6),q(0:mi(2),26),xl2(3,8),
56 & vkl(0:3,3),t0(*),t1(*),prestr(6,mi(1),*),eme(6,mi(1),*),
57 & ckl(3,3),vold(0:mi(2),*),eloc(9),veold(0:mi(2),*),
58 & springarea(2,*),elconloc(21),eth(6),xkl(3,3),voldl(0:mi(2),26),
59 & xikl(3,3),ener(mi(1),*),emec(6),eei(6,mi(1),*),enerini(mi(1),*),
60 & emec0(6),vel(1:3,26),veoldl(0:mi(2),26),xsj2(3),shp2(7,8),
61 & e,un,al,um,am1,xi,et,ze,tt,exx,eyy,ezz,exy,exz,eyz,
62 & xsj,qa(*),vj,t0l,t1l,dtime,weight,pgauss(3),vij,time,ttime,
63 & plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*),
64 & xstiff(27,mi(1),*),xstate(nstate_,mi(1),*),plconloc(802),
65 & vokl(3,3),xstateini(nstate_,mi(1),*),vikl(3,3),
66 & gs(8,4),a,reltime,tlayer(4),dlayer(4),xlayer(mi(3),4),
67 & thicke(mi(3),*),emeini(6,mi(1),*),clearini(3,9,*),
68 & pslavsurf(3,*),pmastsurf(6,*)
70 intent(in) co,kon,ipkon,lakon,ne,v,
71 & elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
72 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr,
73 & iprestr,iperturb,iout,vold,nmethod,
74 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon,
75 & xstateini,xstate,npmat_,matname,mi,ielas,icmd,
76 & ncmat_,nstate_,stiini,vini,enerini,istep,iinc,
77 & springarea,reltime,calcul_fn,calcul_qa,calcul_cauchy,nener,
78 & ikin,ne0,thicke,emeini,pslavsurf,
79 & pmastsurf,mortar,clearini,nea,neb,ielprop,prop,kscale
81 intent(inout) nal,qa,fn,xstiff,ener,eme,eei,stx
97 if(ipkon(i).lt.0) cycle
101 if(lakonl(1:1).eq.
'F') cycle
102 if(lakonl(1:7).eq.
'DCOUP3D') cycle
106 if(lakonl(1:1).eq.
'U')
then 108 & stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
109 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr,
110 & iprestr,eme,iperturb,fn,iout,qa,vold,nmethod,
111 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon,
112 & xstateini,xstiff,xstate,npmat_,matname,mi,ielas,icmd,
113 & ncmat_,nstate_,stiini,vini,ener,eei,enerini,istep,iinc,
114 & reltime,calcul_fn,calcul_qa,calcul_cauchy,nener,
115 & ikin,
nal,ne0,thicke,emeini,i,ielprop,prop)
119 if(lakonl(7:8).ne.
'LC')
then 129 if(nelcon(1,imat).lt.0)
then 134 elseif(lakonl(4:5).eq.
'20')
then 146 if(ielmat(k,i).ne.0)
then 159 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
180 elseif(lakonl(4:5).eq.
'15')
then 187 if(ielmat(k,i).ne.0)
then 200 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
222 if(lakonl(1:5).eq.
'C3D8I')
then 224 elseif(lakonl(4:5).eq.
'20')
then 227 elseif(lakonl(4:4).eq.
'8')
then 229 elseif(lakonl(4:5).eq.
'10')
then 231 elseif(lakonl(4:4).eq.
'4')
then 233 elseif(lakonl(4:5).eq.
'15')
then 235 elseif(lakonl(4:4).eq.
'6')
then 237 elseif((lakonl(1:1).eq.
'E').and.(lakonl(7:7).ne.
'F'))
then 242 if(lakonl(7:7).eq.
'C')
then 251 elseif(mortar.eq.0)
then 255 nope=ichar(lakonl(8:8))-47
256 konl(nope+1)=kon(indexe+nope+1)
262 nope=ichar(lakonl(8:8))-47
268 if(lakonl(4:5).eq.
'8R')
then 270 elseif(lakonl(4:7).eq.
'20RB')
then 271 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 275 & null,xi,et,ze,weight)
277 elseif((lakonl(4:4).eq.
'8').or.
278 & (lakonl(4:6).eq.
'20R'))
then 279 if(lakonl(7:8).eq.
'LC')
then 284 elseif(lakonl(4:4).eq.
'2')
then 286 elseif(lakonl(4:5).eq.
'10')
then 288 elseif(lakonl(4:4).eq.
'4')
then 290 elseif(lakonl(4:5).eq.
'15')
then 291 if(lakonl(7:8).eq.
'LC')
then 296 elseif(lakonl(4:4).eq.
'6')
then 298 elseif(lakonl(1:1).eq.
'E')
then 303 konl(j)=kon(indexe+j)
305 xl(k,j)=co(k,konl(j))
307 voldl(k,j)=vold(k,konl(j))
313 if((iperturb(1).ge.2).or.((iperturb(1).le.0).and.(iout.lt.1)))
317 q(m2,m1)=fn(m2,konl(m1))
330 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'1').or.
331 & (lakonl(7:7).eq.
'2'))
then 334 if(ithermal(1).eq.1)
then 335 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
336 t1l=(t1(konl(1))+t1(konl(2)))/2.d0
337 elseif(ithermal(1).ge.2)
then 338 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
339 t1l=(vold(0,konl(1))+vold(0,konl(2)))/2.d0
345 if(lakonl(2:2).eq.
'S')
then 346 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'1').or.
347 & (lakonl(7:7).eq.
'2').or.((mortar.eq.0).and.
348 & ((nmethod.ne.1).or.(iperturb(1).ge.2).or.(iout.ne.-1))))
351 & fnl,ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,
352 & plicon,nplicon,npmat_,ener(1,i),nener,
353 & stx(1,1,i),mi,springarea(1,konl(nope+1)),nmethod,
354 & ne0,nstate_,xstateini,xstate,reltime,
355 & ielas,ener(1,i+ne),ielorien,orab,norien,i)
356 elseif((mortar.eq.1).and.
357 & ((nmethod.ne.1).or.(iperturb(1).ge.2).or.(iout.ne.-1)))
359 iloc=kon(indexe+nope+1)
360 jfaces=kon(indexe+nope+2)
361 igauss=kon(indexe+nope+1)
363 & fnl,ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,
364 & plicon,nplicon,npmat_,ener(1,i),nener,
365 & stx(1,1,i),mi,springarea(1,iloc),nmethod,
366 & ne0,nstate_,xstateini,xstate,reltime,
367 & ielas,iloc,jfaces,igauss,pslavsurf,pmastsurf,
368 & clearini,ener(1,i+ne),kscale,konl,iout,i)
375 if((lakonl(7:7).eq.
'A').or.
376 & ((nmethod.ne.1).or.(iperturb(1).ge.2).or.(iout.ne.-1)))
380 fn(k,konl(j))=fn(k,konl(j))+fnl(k,j)
385 elseif(ikin.eq.1)
then 388 veoldl(k,j)=veold(k,konl(j))
394 if(lakonl(4:5).eq.
'8R')
then 399 elseif(lakonl(4:7).eq.
'20RB')
then 400 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 404 weight=weight3d13(jj)
407 & jj,xi,et,ze,weight)
409 elseif((lakonl(4:4).eq.
'8').or.
410 & (lakonl(4:6).eq.
'20R'))
412 if(lakonl(7:8).ne.
'LC')
then 433 dlayer(k)=dlayer(k)+xlayer(ilayer-1,k)
437 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
439 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
443 imat=ielmat(ilayer,i)
446 iorien=ielorien(ilayer,i)
451 if(nelcon(1,imat).lt.0)
then 457 elseif(lakonl(4:4).eq.
'2')
then 462 elseif(lakonl(4:5).eq.
'10')
then 467 elseif(lakonl(4:4).eq.
'4')
then 472 elseif(lakonl(4:5).eq.
'15')
then 473 if(lakonl(7:8).ne.
'LC')
then 485 weight=weight3d10(kl)
494 dlayer(k)=dlayer(k)+xlayer(ilayer-1,k)
498 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
500 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
504 imat=ielmat(ilayer,i)
507 iorien=ielorien(ilayer,i)
512 if(nelcon(1,imat).lt.0)
then 518 elseif(lakonl(4:4).eq.
'6')
then 526 if(lakonl(1:5).eq.
'C3D8R')
then 528 elseif(lakonl(1:5).eq.
'C3D8I')
then 529 call shape8hu(xi,et,ze,xl,xsj,shp,iflag)
530 elseif(nope.eq.20)
then 532 if(lakonl(7:7).eq.
'A')
then 534 elseif((lakonl(7:7).eq.
'E').or.
535 & (lakonl(7:7).eq.
'S'))
then 538 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
540 elseif(nope.eq.8)
then 541 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
542 elseif(nope.eq.10)
then 544 elseif(nope.eq.4)
then 545 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
546 elseif(nope.eq.15)
then 547 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
549 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
565 vkl(m2,m3)=vkl(m2,m3)+shp(m3,m1)*vl(m2,m1)
578 if((iperturb(1).eq.1).or.(iperturb(1).eq.-1))
then 588 vokl(m2,m3)=vokl(m2,m3)+
589 & shp(m3,m1)*voldl(m2,m1)
604 exy=vkl(1,2)+vkl(2,1)
605 exz=vkl(1,3)+vkl(3,1)
606 eyz=vkl(2,3)+vkl(3,2)
608 if(iperturb(2).eq.1)
then 612 exx=exx+(vkl(1,1)**2+vkl(2,1)**2+vkl(3,1)**2)/2.d0
613 eyy=eyy+(vkl(1,2)**2+vkl(2,2)**2+vkl(3,2)**2)/2.d0
614 ezz=ezz+(vkl(1,3)**2+vkl(2,3)**2+vkl(3,3)**2)/2.d0
615 exy=exy+vkl(1,1)*vkl(1,2)+vkl(2,1)*vkl(2,2)+
617 exz=exz+vkl(1,1)*vkl(1,3)+vkl(2,1)*vkl(2,3)+
619 eyz=eyz+vkl(1,2)*vkl(1,3)+vkl(2,2)*vkl(2,3)+
626 elseif(iperturb(1).eq.1)
then 627 exx=exx+vokl(1,1)*vkl(1,1)+vokl(2,1)*vkl(2,1)+
629 eyy=eyy+vokl(1,2)*vkl(1,2)+vokl(2,2)*vkl(2,2)+
631 ezz=ezz+vokl(1,3)*vkl(1,3)+vokl(2,3)*vkl(2,3)+
633 exy=exy+vokl(1,1)*vkl(1,2)+vokl(1,2)*vkl(1,1)+
634 & vokl(2,1)*vkl(2,2)+vokl(2,2)*vkl(2,1)+
635 & vokl(3,1)*vkl(3,2)+vokl(3,2)*vkl(3,1)
636 exz=exz+vokl(1,1)*vkl(1,3)+vokl(1,3)*vkl(1,1)+
637 & vokl(2,1)*vkl(2,3)+vokl(2,3)*vkl(2,1)+
638 & vokl(3,1)*vkl(3,3)+vokl(3,3)*vkl(3,1)
639 eyz=eyz+vokl(1,2)*vkl(1,3)+vokl(1,3)*vkl(1,2)+
640 & vokl(2,2)*vkl(2,3)+vokl(2,3)*vkl(2,2)+
641 & vokl(3,2)*vkl(3,3)+vokl(3,3)*vkl(3,2)
646 if(iperturb(1).ne.-1)
then 658 & (vokl(1,1)**2+vokl(2,1)**2+vokl(3,1)**2)/2.d0
660 & (vokl(1,2)**2+vokl(2,2)**2+vokl(3,2)**2)/2.d0
662 & (vokl(1,3)**2+vokl(2,3)**2+vokl(3,3)**2)/2.d0
663 eloc(4)=(vokl(1,2)+vokl(2,1)+vokl(1,1)*vokl(1,2)+
664 & vokl(2,1)*vokl(2,2)+vokl(3,1)*vokl(3,2))/2.d0
665 eloc(5)=(vokl(1,3)+vokl(3,1)+vokl(1,1)*vokl(1,3)+
666 & vokl(2,1)*vokl(2,3)+vokl(3,1)*vokl(3,3))/2.d0
667 eloc(6)=(vokl(2,3)+vokl(3,2)+vokl(1,2)*vokl(1,3)+
668 & vokl(2,2)*vokl(2,3)+vokl(3,2)*vokl(3,3))/2.d0
676 if((kode.eq.-50).or.(kode.le.-100))
then 681 xkl(1,1)=vkl(1,1)+1.0d0
682 xkl(2,2)=vkl(2,2)+1.0d0
683 xkl(3,3)=vkl(3,3)+1.0d0
694 vj=xkl(1,1)*(xkl(2,2)*xkl(3,3)-xkl(2,3)*xkl(3,2))
695 & -xkl(1,2)*(xkl(2,1)*xkl(3,3)-xkl(2,3)*xkl(3,1))
696 & +xkl(1,3)*(xkl(2,1)*xkl(3,2)-xkl(2,2)*xkl(3,1))
703 ckl(1,1)=(xkl(2,2)*xkl(3,3)-xkl(2,3)*xkl(3,2))/vj
704 ckl(2,2)=(xkl(1,1)*xkl(3,3)-xkl(1,3)*xkl(3,1))/vj
705 ckl(3,3)=(xkl(1,1)*xkl(2,2)-xkl(1,2)*xkl(2,1))/vj
706 ckl(1,2)=(xkl(1,3)*xkl(3,2)-xkl(1,2)*xkl(3,3))/vj
707 ckl(1,3)=(xkl(1,2)*xkl(2,3)-xkl(2,2)*xkl(1,3))/vj
708 ckl(2,3)=(xkl(2,1)*xkl(1,3)-xkl(1,1)*xkl(2,3))/vj
709 ckl(2,1)=(xkl(3,1)*xkl(2,3)-xkl(2,1)*xkl(3,3))/vj
710 ckl(3,1)=(xkl(2,1)*xkl(3,2)-xkl(2,2)*xkl(3,1))/vj
711 ckl(3,2)=(xkl(3,1)*xkl(1,2)-xkl(1,1)*xkl(3,2))/vj
724 if(kode.le.-100)
then 741 vikl(m2,m3)=vikl(m2,m3)
742 & +shp(m3,m1)*vini(m2,konl(m1))
750 xikl(1,1)=vikl(1,1)+1
751 xikl(2,2)=vikl(2,2)+1.
752 xikl(3,3)=vikl(3,3)+1.
762 vij=xikl(1,1)*(xikl(2,2)*xikl(3,3)
763 & -xikl(2,3)*xikl(3,2))
764 & -xikl(1,2)*(xikl(2,1)*xikl(3,3)
765 & -xikl(2,3)*xikl(3,1))
766 & +xikl(1,3)*(xikl(2,1)*xikl(3,2)
767 & -xikl(2,2)*xikl(3,1))
772 stre(m1)=stiini(m1,jj,i)
779 if(iprestr.eq.1)
then 781 beta(kk)=-prestr(kk,jj,i)
789 if(ithermal(1).ge.1)
then 796 if(ithermal(1).eq.1)
then 797 if((lakonl(4:5).eq.
'8 ').or.
798 & (lakonl(4:5).eq.
'8I'))
then 800 t0l=t0l+t0(konl(i1))/8.d0
801 t1l=t1l+t1(konl(i1))/8.d0
803 elseif(lakonl(4:6).eq.
'20 ')
then 805 call lintemp(t0,t1,konl,nopered,jj,t0l,t1l)
806 elseif(lakonl(4:6).eq.
'10T')
then 811 t0l=t0l+shp(4,i1)*t0(konl(i1))
812 t1l=t1l+shp(4,i1)*t1(konl(i1))
815 elseif(ithermal(1).ge.2)
then 816 if((lakonl(4:5).eq.
'8 ').or.
817 & (lakonl(4:5).eq.
'8I'))
then 819 t0l=t0l+t0(konl(i1))/8.d0
820 t1l=t1l+vold(0,konl(i1))/8.d0
822 elseif(lakonl(4:6).eq.
'20 ')
then 824 call lintemp_th(t0,vold,konl,nopered,jj,t0l,t1l,mi)
825 elseif(lakonl(4:6).eq.
'10T')
then 830 t0l=t0l+shp(4,i1)*t0(konl(i1))
831 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
842 if((iorien.gt.0).or.(kode.le.-100))
then 846 pgauss(j)=pgauss(j)+shp(4,i1)*co(j,konl(i1))
858 & nalcon,imat,amat,iorien,pgauss,orab,ntmat_,
859 & elas,rho,i,ithermal,alzero,mattyp,t0l,t1l,ihyper,
860 & istiff,elconloc,eth,kode,plicon,nplicon,
861 & plkcon,nplkcon,npmat_,plconloc,mi(1),dtime,jj,
866 if(ithermal(1).ne.0)
then 868 emec(m1)=eloc(m1)-eth(m1)
877 if(kode.le.-100)
then 879 emec0(m1)=emeini(m1,jj,i)
885 if(iprestr.eq.2)
then 887 emec(m1)=emec(m1)-prestr(m1,jj,i)
893 call mechmodel(elconloc,elas,emec,kode,emec0,ithermal,
894 & icmd,beta,stre,xkl,ckl,vj,xikl,vij,
895 & plconloc,xstate,xstateini,ielas,
896 & amat,t1l,dtime,time,ttime,i,jj,nstate_,mi(1),
897 & iorien,pgauss,orab,eloc,mattyp,qa(3),istep,iinc,
898 & ipkon,nmethod,iperturb,qa(4))
900 if(((nmethod.ne.4).or.(iperturb(1).ne.0)).and.
901 & (nmethod.ne.5).and.(icmd.ne.3))
then 903 xstiff(m1,jj,i)=elas(m1)
907 if(iperturb(1).eq.-1)
then 918 eloc(1)=exx-vokl(1,1)
919 eloc(2)=eyy-vokl(2,2)
920 eloc(3)=ezz-vokl(3,3)
921 eloc(4)=exy-(vokl(1,2)+vokl(2,1))
922 eloc(5)=exz-(vokl(1,3)+vokl(3,1))
923 eloc(6)=eyz-(vokl(2,3)+vokl(3,2))
929 al=un*um/(1.d0-2.d0*un)
931 am1=al*(eloc(1)+eloc(2)+eloc(3))
932 stre(1)=am1+2.d0*um*eloc(1)
933 stre(2)=am1+2.d0*um*eloc(2)
934 stre(3)=am1+2.d0*um*eloc(3)
938 elseif(mattyp.eq.2)
then 939 stre(1)=eloc(1)*elas(1)+eloc(2)*elas(2)
941 stre(2)=eloc(1)*elas(2)+eloc(2)*elas(3)
943 stre(3)=eloc(1)*elas(4)+eloc(2)*elas(5)
945 stre(4)=eloc(4)*elas(7)
946 stre(5)=eloc(5)*elas(8)
947 stre(6)=eloc(6)*elas(9)
948 elseif(mattyp.eq.3)
then 949 stre(1)=eloc(1)*elas(1)+eloc(2)*elas(2)+
950 & eloc(3)*elas(4)+eloc(4)*elas(7)+
951 & eloc(5)*elas(11)+eloc(6)*elas(16)
952 stre(2)=eloc(1)*elas(2)+eloc(2)*elas(3)+
953 & eloc(3)*elas(5)+eloc(4)*elas(8)+
954 & eloc(5)*elas(12)+eloc(6)*elas(17)
955 stre(3)=eloc(1)*elas(4)+eloc(2)*elas(5)+
956 & eloc(3)*elas(6)+eloc(4)*elas(9)+
957 & eloc(5)*elas(13)+eloc(6)*elas(18)
958 stre(4)=eloc(1)*elas(7)+eloc(2)*elas(8)+
959 & eloc(3)*elas(9)+eloc(4)*elas(10)+
960 & eloc(5)*elas(14)+eloc(6)*elas(19)
961 stre(5)=eloc(1)*elas(11)+eloc(2)*elas(12)+
962 & eloc(3)*elas(13)+eloc(4)*elas(14)+
963 & eloc(5)*elas(15)+eloc(6)*elas(20)
964 stre(6)=eloc(1)*elas(16)+eloc(2)*elas(17)+
965 & eloc(3)*elas(18)+eloc(4)*elas(19)+
966 & eloc(5)*elas(20)+eloc(6)*elas(21)
975 if((iout.gt.0).or.(iout.eq.-2).or.(kode.le.-100).or.
976 & ((nmethod.eq.4).and.(iperturb(1).gt.1).and.
977 & (ithermal(1).le.1)))
then 978 if(ithermal(1).eq.0)
then 984 ener(jj,i)=enerini(jj,i)+
985 & ((eloc(1)-eth(1)-emeini(1,jj,i))*
986 & (stre(1)+stiini(1,jj,i))+
987 & (eloc(2)-eth(2)-emeini(2,jj,i))*
988 & (stre(2)+stiini(2,jj,i))+
989 & (eloc(3)-eth(3)-emeini(3,jj,i))*
990 & (stre(3)+stiini(3,jj,i)))/2.d0+
991 & (eloc(4)-eth(4)-emeini(4,jj,i))*(stre(4)+stiini(4,jj,i))+
992 & (eloc(5)-eth(5)-emeini(5,jj,i))*(stre(5)+stiini(5,jj,i))+
993 & (eloc(6)-eth(6)-emeini(6,jj,i))*(stre(6)+stiini(6,jj,i))
995 eme(1,jj,i)=eloc(1)-eth(1)
996 eme(2,jj,i)=eloc(2)-eth(2)
997 eme(3,jj,i)=eloc(3)-eth(3)
998 eme(4,jj,i)=eloc(4)-eth(4)
999 eme(5,jj,i)=eloc(5)-eth(5)
1000 eme(6,jj,i)=eloc(6)-eth(6)
1003 if((iout.gt.0).or.(iout.eq.-2).or.(kode.le.-100))
then 1022 vel(m1,1)=vel(m1,1)+shp(4,i1)*veoldl(m1,i1)
1025 ener(jj,i+ne)=rho*(vel(1,1)*vel(1,1)+
1026 & vel(2,1)*vel(2,1)+ vel(3,1)*vel(3,1))/2.d0
1036 stx(1,jj,i)=skl(1,1)
1037 stx(2,jj,i)=skl(2,2)
1038 stx(3,jj,i)=skl(3,3)
1039 stx(4,jj,i)=skl(2,1)
1040 stx(5,jj,i)=skl(3,1)
1041 stx(6,jj,i)=skl(3,2)
1049 if(calcul_fn.eq.1)
then 1059 fn(m2,konl(m1))=fn(m2,konl(m1))+
1060 & xsj*skl(m2,m3)*shp(m3,m1)*weight
1065 if(iperturb(2).eq.1)
then 1068 fn(m2,konl(m1))=fn(m2,konl(m1))+
1069 & xsj*skl(m4,m3)*weight*
1070 & (vkl(m2,m4)*shp(m3,m1)+
1071 & vkl(m2,m3)*shp(m4,m1))/2.d0
1079 if(lakonl(1:5).eq.
'C3D8R')
then 1080 call hgforce (fn,elas,a,gs,vl,mi,konl)
1087 if(calcul_cauchy.eq.1)
then 1093 if((kode.ne.-50).and.(kode.gt.-100))
then 1095 xkl(1,1)=vkl(1,1)+1.0d0
1096 xkl(2,2)=vkl(2,2)+1.0d0
1097 xkl(3,3)=vkl(3,3)+1.0d0
1106 vj=xkl(1,1)*(xkl(2,2)*xkl(3,3)-xkl(2,3)*xkl(3,2))
1107 & -xkl(1,2)*(xkl(2,1)*xkl(3,3)-xkl(2,3)*xkl(3,1))
1108 & +xkl(1,3)*(xkl(2,1)*xkl(3,2)-xkl(2,2)*xkl(3,1))
1116 ckl(m1,m2)=ckl(m1,m2)+
1117 & skl(m3,m4)*xkl(m1,m3)*xkl(m2,m4)
1120 ckl(m1,m2)=ckl(m1,m2)/vj
1124 stx(1,jj,i)=ckl(1,1)
1125 stx(2,jj,i)=ckl(2,2)
1126 stx(3,jj,i)=ckl(3,3)
1127 stx(4,jj,i)=ckl(2,1)
1128 stx(5,jj,i)=ckl(3,1)
1129 stx(6,jj,i)=ckl(3,2)
1140 if(calcul_qa.eq.1)
then 1143 qa(1)=qa(1)+dabs(fn(m2,konl(m1))-q(m2,m1))
subroutine shape20h_pl(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h_pl.f:20
subroutine shape6w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape6w.f:20
subroutine linscal10(scal, konl, scall, idim, shp)
Definition: linscal10.f:20
subroutine shape8q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape8q.f:20
subroutine springforc_n2f(xl, konl, vl, imat, elcon, nelcon, elas, fnl, ncmat_, ntmat_, nope, lakonl, t1l, kode, elconloc, plicon, nplicon, npmat_, senergy, nener, cstr, mi, springarea, nmethod, ne0, nstate_, xstateini, xstate, reltime, ielas, venergy, ielorien, orab, norien, nelem)
Definition: springforc_n2f.f:24
subroutine mechmodel(elconloc, elas, emec, kode, emec0, ithermal, icmd, beta, stre, xkl, ckl, vj, xikl, vij, plconloc, xstate, xstateini, ielas, amat, t1l, dtime, time, ttime, iel, iint, nstate_, mi, iorien, pgauss, orab, eloc, mattyp, pnewdt, istep, iinc, ipkon, nmethod, iperturb, depvisc)
Definition: mechmodel.f:24
subroutine shape10tet(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape10tet.f:20
subroutine shape8h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape8h.f:20
subroutine shape15w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape15w.f:20
subroutine hgforce(fn, elas, a, gs, vl, mi, konl)
Definition: hgforce.f:20
subroutine shape20h_ax(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h_ax.f:20
subroutine lintemp_th(t0, vold, konl, nope, jj, t0l, t1l, mi)
Definition: lintemp_th.f:20
subroutine materialdata_me(elcon, nelcon, rhcon, nrhcon, alcon, nalcon, imat, amat, iorien, pgauss, orab, ntmat_, elas, rho, iel, ithermal, alzero, mattyp, t0l, t1l, ihyper, istiff, elconloc, eth, kode, plicon, nplicon, plkcon, nplkcon, npmat_, plconloc, mi, dtime, iint, xstiff, ncmat_)
Definition: materialdata_me.f:23
subroutine lintemp(t0, t1, konl, nope, jj, t0l, t1l)
Definition: lintemp.f:20
subroutine shape20h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h.f:20
subroutine str2mat(str, ckl, vj, cauchy)
Definition: str2mat.f:20
subroutine shape8hr(xl, xsj, shp, gs, a)
Definition: shape8hr.f:20
subroutine beamintscheme(lakonl, mint3d, npropstart, prop, kk, xi, et, ze, weight)
Definition: beamintscheme.f:21
subroutine shape4tet(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape4tet.f:20
subroutine cauchy(n, x, l, u, nbd, g, iorder, iwhere, t, d, xcp, m, wy, ws, sy, wt, theta, col, head, p, c, wbp, v, nseg, iprint, sbgnrm, info, epsmch)
Definition: lbfgsb.f:1225
subroutine shape8hu(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape8hu.f:20
static ITG * nal
Definition: results.c:31
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20
subroutine resultsmech_u(co, kon, ipkon, lakon, ne, v, stx, elcon, nelcon, rhcon, nrhcon, alcon, nalcon, alzero, ielmat, ielorien, norien, orab, ntmat_, t0, t1, ithermal, prestr, iprestr, eme, iperturb, fn, iout, qa, vold, nmethod, veold, dtime, time, ttime, plicon, nplicon, plkcon, nplkcon, xstateini, xstiff, xstate, npmat_, matname, mi, ielas, icmd, ncmat_, nstate_, stiini, vini, ener, eei, enerini, istep, iinc, reltime, calcul_fn, calcul_qa, calcul_cauchy, nener, ikin, nal, ne0, thicke, emeini, nelem, ielprop, prop)
Definition: resultsmech_u.f:28
subroutine springforc_f2f(xl, vl, imat, elcon, nelcon, elas, fnl, ncmat_, ntmat_, nope, lakonl, t1l, kode, elconloc, plicon, nplicon, npmat_, senergy, nener, cstr, mi, springarea, nmethod, ne0, nstate_, xstateini, xstate, reltime, ielas, iloc, jfaces, igauss, pslavsurf, pmastsurf, clearini, venergy, kscale, konl, iout, nelem)
Definition: springforc_f2f.f:26
subroutine thickness(dgdx, nobject, nodedesiboun, ndesiboun, objectset, xo, yo, zo, x, y, z, nx, ny, nz, co, ifree, ndesia, ndesib, iobject, ndesi, dgdxglob, nk)
Definition: thickness.f:22
subroutine materialdata_rho(rhcon, nrhcon, imat, rho, t1l, ntmat_, ithermal)
Definition: materialdata_rho.f:20