50 character*20 sideload(*)
51 character*80 matname(*),amat
52 character*81 tieset(3,*)
54 integer konl(26),ifaceq(8,6),nelemload(2,*),nbody,nelem,
55 & mi(*),iloc,jfaces,igauss,mortar,kon(*),ielprop(*),null,
56 & mattyp,ithermal,iperturb(*),nload,
idist,i,j,k,l,i1,i2,j1,
57 & nmethod,k1,l1,ii,jj,ii1,jj1,id,ipointer,ig,m1,m2,m3,m4,kk,
58 & nelcon(2,*),nrhcon(*),nalcon(2,*),ielmat(mi(3),*),six,
59 & ielorien(mi(3),*),ilayer,nlayer,ki,kl,ipkon(*),indexe,
60 & ntmat_,nope,nopes,norien,ihyper,iexpl,kode,imat,mint2d,
61 & mint3d,ifacet(6,4),nopev,iorien,istiff,ncmat_,iface,
62 & ifacew(8,5),intscheme,n,ipointeri,ipointerj,istep,iinc,
63 & layer,kspt,jltyp,iflag,iperm(60),m,ipompc(*),nodempc(3,*),
64 & nmpc,ikmpc(*),ilmpc(*),iscale,nstate_,ne0,iselect(6),
65 & istartset(*),iendset(*),ialset(*),ntie,integerglob(*),nasym,
66 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),npmat_,nopered,
67 & ndesi,nodedesi(*),idesvar,node,kscale,iactive,ij,
68 & mass,stiffness,buckling,rhsi,coriolis,icoordinate,idir,ne,
69 & istartelem(*),ialelem(*),nk
71 real*8 co(3,*),xl(3,26),shp(4,26),xs2(3,7),veold(0:mi(2),*),
72 & s(60,60),w(3,3),p1(3),p2(3),bodyf(3),bodyfx(3),sigma,
73 & ff(60),bf(3),q(3),shpj(4,26),elcon(0:ncmat_,ntmat_,*),t(3),
74 & rhcon(0:1,ntmat_,*),xkl(3,3),eknlsign,reltime,prop(*),
75 & alcon(0:6,ntmat_,*),alzero(*),orab(7,*),t0(*),t1(*),
76 & anisox(3,3,3,3),voldl(0:mi(2),26),vo(3,3),xloadold(2,*),
77 & xl2(3,9),xsj2(3),shp2(7,9),vold(0:mi(2),*),xload(2,*),
78 & xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*),
79 & vv(3,3,3,3),springarea(2,*),
thickness,tlayer(4),dlayer(4),
80 & om,omx,e,un,al,um,xi,et,ze,tt,const,xsj,xsjj,sm(60,60),
81 & sti(6,mi(1),*),stx(6,mi(1),*),s11,s22,s33,s12,s13,s23,s11b,
82 & s22b,s33b,s12b,s13b,s23b,t0l,t1l,coefmpc(*),xlayer(mi(3),4),
83 & senergy,senergyb,rho,elas(21),summass,summ,thicke(mi(3),*),
84 & sume,factorm,factore,alp,elconloc(21),eth(6),doubleglob(*),
85 & weight,coords(3),dmass,xl1(3,9),term,clearini(3,9,*),
86 & plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*),
87 & xstiff(27,mi(1),*),plconloc(802),dtime,ttime,time,tvar(2),
88 & sax(60,60),ffax(60),gs(8,4),a,stress(6),stre(3,3),
89 & pslavsurf(3,*),pmastsurf(6,*),distmin,s0(60,60),xdesi(3,*),
90 & ds1(60,60),ff0(60),dfl(ndesi,120),dxstiff(27,mi(1),ne,*),
91 & vl(0:mi(2),52),v(0:mi(2),*)
93 intent(in) co,kon,lakonl,p1,p2,omx,bodyfx,nbody,
94 & nelem,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
95 & ielmat,ielorien,norien,orab,ntmat_,
96 & t0,t1,ithermal,vold,iperturb,nelemload,
97 & sideload,nload,
idist,sti,stx,iexpl,plicon,
98 & nplicon,plkcon,nplkcon,xstiff,npmat_,dtime,
99 & matname,mi,ncmat_,mass,stiffness,buckling,rhsi,intscheme,
100 & ttime,time,istep,iinc,coriolis,xloadold,reltime,
101 & ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,veold,
102 & nstate_,xstateini,ne0,ipkon,thicke,
103 & integerglob,doubleglob,tieset,istartset,iendset,ialset,ntie,
104 & nasym,pslavsurf,pmastsurf,mortar,clearini,ielprop,prop,
105 & distmin,ndesi,nodedesi,icoordinate,xdesi,istartelem,ialelem,
108 intent(inout) sm,xload,nmethod,springarea,xstate,dfl
112 ifaceq=reshape((/4,3,2,1,11,10,9,12,
113 & 5,6,7,8,13,14,15,16,
114 & 1,2,6,5,9,18,13,17,
115 & 2,3,7,6,10,19,14,18,
116 & 3,4,8,7,11,20,15,19,
117 & 4,1,5,8,12,17,16,20/),(/8,6/))
118 ifacet=reshape((/1,3,2,7,6,5,
121 & 1,4,3,8,10,7/),(/6,4/))
122 ifacew=reshape((/1,3,2,9,8,7,0,0,
123 & 4,5,6,10,11,12,0,0,
124 & 1,2,5,4,7,14,10,13,
125 & 2,3,6,5,8,15,11,14,
126 & 4,6,3,1,12,15,9,13/),(/8,5/))
129 iperm=(/13,14,-15,16,17,-18,19,20,-21,22,23,-24,
130 & 1,2,-3,4,5,-6,7,8,-9,10,11,-12,
131 & 37,38,-39,40,41,-42,43,44,-45,46,47,-48,
132 & 25,26,-27,28,29,-30,31,32,-33,34,35,-36,
133 & 49,50,-51,52,53,-54,55,56,-57,58,59,-60/)
142 if(lakonl(1:5).eq.
'C3D8I')
then 146 elseif(lakonl(4:5).eq.
'20')
then 151 elseif(lakonl(4:4).eq.
'8')
then 155 elseif(lakonl(4:5).eq.
'10')
then 159 elseif(lakonl(4:4).eq.
'4')
then 163 elseif(lakonl(4:5).eq.
'15')
then 166 elseif(lakonl(4:4).eq.
'6')
then 169 elseif(lakonl(1:2).eq.
'ES')
then 170 if(lakonl(7:7).eq.
'C')
then 172 nope=ichar(lakonl(8:8))-47
173 konl(nope+1)=kon(indexe+nope+1)
174 elseif(mortar.eq.1)
then 178 nope=ichar(lakonl(8:8))-47
180 elseif(lakonl(1:4).eq.
'MASS')
then 186 if(lakonl(7:8).ne.
'LC')
then 191 iorien=ielorien(1,nelem)
196 if(nelcon(1,imat).lt.0)
then 201 elseif(lakonl(4:5).eq.
'20')
then 209 if(ielmat(k,nelem).ne.0)
then 222 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
240 elseif(lakonl(4:5).eq.
'15')
then 248 if(ielmat(k,nelem).ne.0)
then 261 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
280 if(intscheme.eq.0)
then 281 if(lakonl(4:5).eq.
'8R')
then 284 elseif(lakonl(4:7).eq.
'20RB')
then 285 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 291 & null,xi,et,ze,weight)
293 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
then 294 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
295 & (lakonl(7:7).eq.
'E'))
then 300 if(lakonl(7:8).eq.
'LC')
then 306 elseif(lakonl(4:4).eq.
'2')
then 309 elseif(lakonl(4:5).eq.
'10')
then 312 elseif(lakonl(4:4).eq.
'4')
then 315 elseif(lakonl(4:5).eq.
'15')
then 316 if(lakonl(7:8).eq.
'LC')
then 321 elseif(lakonl(4:4).eq.
'6')
then 327 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 329 if(lakonl(4:4).eq.
'8')
then 330 if(lakonl(5:5).eq.
'R')
then 336 if(lakonl(6:6).eq.
'R')
then 342 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 344 if(lakonl(4:5).eq.
'10')
then 349 elseif((lakonl(4:5).eq.
'15').or.(lakonl(4:4).eq.
'6'))
then 358 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
359 & (stiffness.eq.1).and.(buckling.eq.0))
then 361 konl(i1)=kon(indexe+i1)
363 voldl(i2,i1)=vold(i2,konl(i1))
373 do ij=istartelem(nelem),istartelem(nelem+1)-1
378 if(idesvar.gt.0)
then 380 if(icoordinate.eq.1)
then 386 if(node.eq.nodedesi(idesvar))
then 407 konl(i)=kon(indexe+i)
409 xl(j,i)=co(j,konl(i))
411 vl(j,26+i)=v(j,nk+konl(i))
418 if((idesvar.gt.0).and.(icoordinate.eq.1))
then 420 xl(i,iactive)=xl(i,iactive)+xdesi(i,idesvar)
427 if((mass.eq.1).or.(buckling.eq.1).or.(coriolis.eq.1))
then 463 if(iperturb(2).eq.0)
then 466 voldl(i2,i1)=vold(i2,konl(i1))
472 if(lakonl(1:2).eq.
'ES')
then 473 if(lakonl(7:7).ne.
'C')
then 476 if(ithermal.eq.1)
then 477 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
478 t1l=(t1(konl(1))+t1(konl(2)))/2.d0
479 elseif(ithermal.ge.2)
then 480 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
481 t1l=(vold(0,konl(1))+vold(0,konl(2)))/2.d0
484 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'1').or.
485 & (lakonl(7:7).eq.
'2').or.(mortar.eq.0))
then 487 & nelcon, ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,
488 & plicon,nplicon,npmat_,iperturb,
489 & springarea(1,konl(nope+1)),nmethod,mi,ne0,nstate_,
490 & xstateini,xstate,reltime,nasym,ielorien,orab,norien,
492 elseif(mortar.eq.1)
then 493 iloc=kon(indexe+nope+1)
494 jfaces=kon(indexe+nope+2)
495 igauss=kon(indexe+nope+1)
497 & ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,plicon,
498 & nplicon,npmat_,iperturb,springarea(1,iloc),nmethod,
499 & mi,ne0,nstate_,xstateini,xstate,reltime,
500 & nasym,iloc,jfaces,igauss,pslavsurf,
501 & pmastsurf,clearini,kscale)
503 elseif(lakonl(1:4).eq.
'MASS')
then 509 sm(i1,i1)=elcon(1,1,imat)
522 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 525 q(i1)=xl(i1,1)+voldl(i1,1)
530 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
535 ff(i1)=bodyf(i1)+(q(i1)-const*p2(i1))*om
551 if(intscheme.eq.0)
then 552 if(lakonl(4:5).eq.
'8R')
then 557 elseif(lakonl(4:7).eq.
'20RB')
then 558 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 562 weight=weight3d13(kk)
565 & kk,xi,et,ze,weight)
567 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
569 if(lakonl(7:8).ne.
'LC')
then 590 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
594 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
596 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
600 imat=ielmat(ilayer,nelem)
603 iorien=ielorien(ilayer,nelem)
608 if(nelcon(1,imat).lt.0)
then 614 elseif(lakonl(4:4).eq.
'2')
then 619 elseif(lakonl(4:5).eq.
'10')
then 624 elseif(lakonl(4:4).eq.
'4')
then 629 elseif(lakonl(4:5).eq.
'15')
then 630 if(lakonl(7:8).ne.
'LC')
then 642 weight=weight3d10(kl)
651 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
655 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
657 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
661 imat=ielmat(ilayer,nelem)
664 iorien=ielorien(ilayer,nelem)
669 if(nelcon(1,imat).lt.0)
then 675 elseif(lakonl(4:4).eq.
'6')
then 682 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 687 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 710 if(lakonl(1:5).eq.
'C3D8R')
then 712 elseif(lakonl(1:5).eq.
'C3D8I')
then 713 call shape8hu(xi,et,ze,xl,xsj,shp,iflag)
714 elseif(nope.eq.20)
then 716 if(lakonl(7:7).eq.
'A')
then 718 elseif((lakonl(7:7).eq.
'E').or.(lakonl(7:7).eq.
'S'))
then 721 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
723 elseif(nope.eq.8)
then 724 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
725 elseif(nope.eq.10)
then 727 elseif(nope.eq.4)
then 728 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
729 elseif(nope.eq.15)
then 730 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
732 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
737 if(xsj.lt.1.d-20)
then 738 write(*,*)
'*ERROR in e_c3d: nonpositive jacobian' 739 write(*,*)
' determinant in element',nelem
746 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
747 & (stiffness.eq.1).and.(buckling.eq.0))
then 764 if(ithermal.eq.1)
then 765 if(lakonl(4:5).eq.
'8 ')
then 767 t0l=t0l+t0(konl(i1))/8.d0
768 t1l=t1l+t1(konl(i1))/8.d0
770 elseif(lakonl(4:6).eq.
'20 ')
then 772 call lintemp(t0,t1,konl,nopered,kk,t0l,t1l)
773 elseif(lakonl(4:6).eq.
'10T')
then 778 t0l=t0l+shp(4,i1)*t0(konl(i1))
779 t1l=t1l+shp(4,i1)*t1(konl(i1))
782 elseif(ithermal.ge.2)
then 783 if(lakonl(4:5).eq.
'8 ')
then 785 t0l=t0l+t0(konl(i1))/8.d0
786 t1l=t1l+vold(0,konl(i1))/8.d0
788 elseif(lakonl(4:6).eq.
'20 ')
then 790 call lintemp_th(t0,vold,konl,nopered,kk,t0l,t1l,mi)
791 elseif(lakonl(4:6).eq.
'10T')
then 796 t0l=t0l+shp(4,i1)*t0(konl(i1))
797 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
811 coords(j)=coords(j)+shp(4,i1)*co(j,konl(i1))
826 if((icoordinate.eq.1).or.(idesvar.eq.0))
then 828 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
829 & nelem,ithermal,alzero,mattyp,t0l,t1l,
830 & ihyper,istiff,elconloc,eth,kode,plicon,
831 & nplicon,plkcon,nplkcon,npmat_,
832 & plconloc,mi(1),dtime,kk,
835 idir=idesvar-3*((idesvar-1)/3)
837 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
838 & nelem,ithermal,alzero,mattyp,t0l,t1l,
839 & ihyper,istiff,elconloc,eth,kode,plicon,
840 & nplicon,plkcon,nplkcon,npmat_,
841 & plconloc,mi(1),dtime,kk,
842 & dxstiff(1,1,1,idir),ncmat_)
850 al=un*um/(1.d0-2.d0*un)
852 elseif(mattyp.eq.2)
then 864 bodyf(ii)=bodyfx(ii)*rho
869 if(buckling.eq.1)
then 887 shpj(1,i1)=shp(1,i1)*xsjj
888 shpj(2,i1)=shp(2,i1)*xsjj
889 shpj(3,i1)=shp(3,i1)*xsjj
890 shpj(4,i1)=shp(4,i1)*xsj
896 if((stiffness.eq.1).or.(mass.eq.1).or.(buckling.eq.1).or.
897 & (coriolis.eq.1))
then 899 if(((iperturb(1).ne.1).and.(iperturb(2).ne.1)).or.
900 & (buckling.eq.1))
then 912 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
921 if(buckling.eq.0)
then 925 s(ii1,jj1)=s(ii1,jj1)+(al*w(1,1)+
926 & um*(2.d0*w(1,1)+w(2,2)+w(3,3)))*weight
928 s(ii1,jj1+1)=s(ii1,jj1+1)+(al*w(1,2)+
930 s(ii1,jj1+2)=s(ii1,jj1+2)+(al*w(1,3)+
932 s(ii1+1,jj1)=s(ii1+1,jj1)+(al*w(2,1)+
934 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+(al*w(2,2)+
935 & um*(2.d0*w(2,2)+w(1,1)+w(3,3)))*weight
936 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+(al*w(2,3)+
938 s(ii1+2,jj1)=s(ii1+2,jj1)+(al*w(3,1)+
940 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+(al*w(3,2)+
942 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+(al*w(3,3)+
943 & um*(2.d0*w(3,3)+w(2,2)+w(1,1)))*weight
945 elseif(mattyp.eq.2)
then 947 s(ii1,jj1)=s(ii1,jj1)+(elas(1)*w(1,1)+
948 & elas(7)*w(2,2)+elas(8)*w(3,3))*weight
949 s(ii1,jj1+1)=s(ii1,jj1+1)+(elas(2)*w(1,2)+
950 & elas(7)*w(2,1))*weight
951 s(ii1,jj1+2)=s(ii1,jj1+2)+(elas(4)*w(1,3)+
952 & elas(8)*w(3,1))*weight
953 s(ii1+1,jj1)=s(ii1+1,jj1)+(elas(7)*w(1,2)+
954 & elas(2)*w(2,1))*weight
955 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+
957 & elas(3)*w(2,2)+elas(9)*w(3,3))*weight
958 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+
960 & elas(9)*w(3,2))*weight
961 s(ii1+2,jj1)=s(ii1+2,jj1)+
963 & elas(4)*w(3,1))*weight
964 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+
966 & elas(5)*w(3,2))*weight
967 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+
969 & elas(9)*w(2,2)+elas(6)*w(3,3))*weight
977 s(ii1+i1-1,jj1+j1-1)=
978 & s(ii1+i1-1,jj1+j1-1)
979 & +anisox(i1,k1,j1,l1)
991 sm(ii1,jj1)=sm(ii1,jj1)
992 & +rho*shpj(4,ii)*shp(4,jj)*weight
993 sm(ii1+1,jj1+1)=sm(ii1,jj1)
994 sm(ii1+2,jj1+2)=sm(ii1,jj1)
999 if(coriolis.eq.1)
then 1001 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
1002 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
1003 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
1004 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
1005 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
1006 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
1007 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
1015 & (s11b*w(1,1)+s12b*(w(1,2)+w(2,1))
1016 & +s13b*(w(1,3)+w(3,1))+s22b*w(2,2)
1017 & +s23b*(w(2,3)+w(3,2))+s33b*w(3,3))*weight
1018 sm(ii1,jj1)=sm(ii1,jj1)-senergyb
1019 sm(ii1+1,jj1+1)=sm(ii1+1,jj1+1)-senergyb
1020 sm(ii1+2,jj1+2)=sm(ii1+2,jj1+2)-senergyb
1039 vo(i1,j1)=vo(i1,j1)+shp(j1,k1)*voldl(i1,k1)
1044 if(mattyp.eq.1)
then 1045 call wcoef(vv,vo,al,um)
1052 if((mass.eq.1).and.(iexpl.gt.1))
then 1053 summass=summass+rho*xsj
1067 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
1071 if(mattyp.eq.1)
then 1077 s(ii1+m2-1,jj1+m1-1)=
1078 & s(ii1+m2-1,jj1+m1-1)
1079 & +vv(m4,m3,m2,m1)*w(m4,m3)*weight
1085 elseif(mattyp.eq.2)
then 1087 call orthonl(w,vo,elas,s,ii1,jj1,weight)
1091 call anisonl(w,vo,elas,s,ii1,jj1,weight)
1098 & (s11*w(1,1)+s12*(w(1,2)+w(2,1))
1099 & +s13*(w(1,3)+w(3,1))+s22*w(2,2)
1100 & +s23*(w(2,3)+w(3,2))+s33*w(3,3))*weight
1101 s(ii1,jj1)=s(ii1,jj1)+senergy
1102 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+senergy
1103 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+senergy
1107 if((mass.eq.1).and.(om.gt.0.d0))
then 1108 dmass=shpj(4,ii)*shp(4,jj)*weight*om
1110 s(ii1+m1-1,jj1+m1-1)=s(ii1+m1-1,jj1+m1-1)-
1113 s(ii1+m1-1,jj1+m2-1)=s(ii1+m1-1,jj1+m2-1)+
1114 & dmass*p2(m1)*p2(m2)
1122 sm(ii1,jj1)=sm(ii1,jj1)
1123 & +rho*shpj(4,ii)*shp(4,jj)*weight
1124 sm(ii1+1,jj1+1)=sm(ii1,jj1)
1125 sm(ii1+2,jj1+2)=sm(ii1,jj1)
1130 if(coriolis.eq.1)
then 1132 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
1133 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
1134 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
1135 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
1136 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
1137 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
1138 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
1150 if(lakonl(1:5).eq.
'C3D8R')
then 1161 call nident2(nelemload,nelem,nload,id)
1163 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1164 if((sideload(id)(1:2).ne.
'BX').and.
1165 & (sideload(id)(1:2).ne.
'BY').and.
1166 & (sideload(id)(1:2).ne.
'BZ'))
then 1170 if(sideload(id)(3:4).eq.
'NU')
then 1174 coords(j)=coords(j)+
1175 & shp(4,i1)*xl(j,i1)
1178 if(sideload(id)(1:2).eq.
'BX')
then 1180 elseif(sideload(id)(1:2).eq.
'BY')
then 1182 elseif(sideload(id)(1:2).eq.
'BZ')
then 1186 call dload(xload(1,id),istep,iinc,tvar,nelem,i,
1187 & layer,kspt,coords,jltyp,sideload(id),vold,co,
1188 & lakonl,konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,
1189 & ilmpc,iscale,veold,rho,amat,mi)
1190 if((nmethod.eq.1).and.(iscale.ne.0))
1191 & xload(1,id)=xloadold(1,id)+
1192 & (xload(1,id)-xloadold(1,id))*reltime
1196 if(sideload(id)(1:2).eq.
'BX')
1197 & ff(jj1)=ff(jj1)+xload(1,id)*shpj(4,jj)*weight
1198 if(sideload(id)(1:2).eq.
'BY')
1199 & ff(jj1+1)=ff(jj1+1)+xload(1,id)*shpj(4,jj)*weight
1200 if(sideload(id)(1:2).eq.
'BZ')
1201 & ff(jj1+2)=ff(jj1+2)+xload(1,id)*shpj(4,jj)*weight
1219 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1221 q(i1)=q(i1)+shp(4,j1)*xl(i1,j1)
1225 q(i1)=q(i1)+shp(4,j1)*
1226 & (xl(i1,j1)+voldl(i1,j1))
1232 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
1237 bf(i1)=bodyf(i1)+(q(i1)-const*p2(i1))*om
1246 ff(jj1)=ff(jj1)+bf(1)*shpj(4,jj)*weight
1247 ff(jj1+1)=ff(jj1+1)+bf(2)*shpj(4,jj)*weight
1248 ff(jj1+2)=ff(jj1+2)+bf(3)*shpj(4,jj)*weight
1261 if((buckling.eq.0).and.(nload.ne.0))
then 1265 call nident2(nelemload,nelem,nload,id)
1267 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1268 if(sideload(id)(1:1).ne.
'P')
then 1273 ig=ichar(sideload(id)(2:2))-48
1278 if(lakonl(4:4).eq.
'6')
then 1286 if(lakonl(4:5).eq.
'15')
then 1297 if((nope.eq.20).or.(nope.eq.8).or.
1298 & (nope.eq.11))
then 1301 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1304 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
1311 xl1(j,i)=co(j,konl(ifaceq(i,ig)))
1317 xl2(j,i)=co(j,konl(ifaceq(i,ig)))+
1318 & vold(j,konl(ifaceq(i,ig)))
1327 if(idesvar.gt.0)
then 1329 node=konl(ifaceq(i,ig))
1330 if(node.eq.nodedesi(idesvar))
then 1333 & xl2(j,i)+xdesi(j,idesvar)
1340 elseif((nope.eq.10).or.(nope.eq.4))
then 1341 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1344 xl2(j,i)=co(j,konl(ifacet(i,ig)))
1351 xl1(j,i)=co(j,konl(ifacet(i,ig)))
1357 xl2(j,i)=co(j,konl(ifacet(i,ig)))+
1358 & vold(j,konl(ifacet(i,ig)))
1367 if(idesvar.gt.0)
then 1369 node=konl(ifacet(i,ig))
1370 if(node.eq.nodedesi(idesvar))
then 1373 & xl2(j,i)+xdesi(j,idesvar)
1381 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1384 xl2(j,i)=co(j,konl(ifacew(i,ig)))
1391 xl1(j,i)=co(j,konl(ifacew(i,ig)))
1397 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
1398 & vold(j,konl(ifacew(i,ig)))
1407 if(idesvar.gt.0)
then 1409 node=konl(ifacew(i,ig))
1410 if(node.eq.nodedesi(idesvar))
then 1413 & xl2(j,i)+xdesi(j,idesvar)
1422 if((lakonl(4:5).eq.
'8R').or.
1423 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 1427 elseif((lakonl(4:4).eq.
'8').or.
1428 & (lakonl(4:6).eq.
'20R').or.
1429 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 1433 elseif(lakonl(4:4).eq.
'2')
then 1437 elseif((lakonl(4:5).eq.
'10').or.
1438 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 1442 elseif((lakonl(4:4).eq.
'4').or.
1443 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 1451 call shape9q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1452 elseif(nopes.eq.8)
then 1453 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1454 elseif(nopes.eq.4)
then 1455 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1456 elseif(nopes.eq.6)
then 1457 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1458 elseif(nopes.eq.7)
then 1459 call shape7tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1461 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1467 if(sideload(id)(3:4).eq.
'NU')
then 1471 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1475 jltyp=ichar(sideload(id)(2:2))-48
1478 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1479 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1480 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1481 & iscale,veold,rho,amat,mi)
1482 if((nmethod.eq.1).and.(iscale.ne.0))
1483 & xload(1,id)=xloadold(1,id)+
1484 & (xload(1,id)-xloadold(1,id))*reltime
1485 elseif(sideload(id)(3:4).eq.
'SM')
then 1493 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1497 jltyp=ichar(sideload(id)(2:2))-48
1504 iface=10*nelem+jltyp
1506 & coords,iselect,six,iface,tieset,istartset,
1507 & iendset,ialset,ntie,entity)
1512 t(1)=stress(1)*xsj2(1)+stress(4)*xsj2(2)+
1514 t(2)=stress(4)*xsj2(1)+stress(2)*xsj2(2)+
1516 t(3)=stress(6)*xsj2(1)+stress(5)*xsj2(2)+
1527 if((nope.eq.20).or.(nope.eq.8).or.
1528 & (nope.eq.11))
then 1530 ipointer=(ifaceq(k,ig)-1)*3
1531 elseif((nope.eq.10).or.(nope.eq.4))
then 1532 ipointer=(ifacet(k,ig)-1)*3
1534 ipointer=(ifacew(k,ig)-1)*3
1536 ff(ipointer+1)=ff(ipointer+1)-shp2(4,k)*xload(1,id)
1538 ff(ipointer+2)=ff(ipointer+2)-shp2(4,k)*xload(1,id)
1540 ff(ipointer+3)=ff(ipointer+3)-shp2(4,k)*xload(1,id)
1550 elseif((mass.eq.1).and.
1551 & ((iperturb(1).eq.1).or.(iperturb(2).eq.1)))
then 1553 call shape9q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1554 elseif(nopes.eq.8)
then 1555 call shape8q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1556 elseif(nopes.eq.4)
then 1557 call shape4q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1558 elseif(nopes.eq.6)
then 1559 call shape6tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1560 elseif(nopes.eq.7)
then 1561 call shape7tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1563 call shape3tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1569 if(sideload(id)(3:4).eq.
'NU')
then 1573 coords(k)=coords(k)+xl1(k,j)*shp2(4,j)
1577 jltyp=ichar(sideload(id)(2:2))-48
1580 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1581 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1582 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1583 & iscale,veold,rho,amat,mi)
1584 if((nmethod.eq.1).and.(iscale.ne.0))
1585 & xload(1,id)=xloadold(1,id)+
1586 & (xload(1,id)-xloadold(1,id))*reltime
1587 elseif(sideload(id)(3:4).eq.
'SM')
then 1595 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1599 jltyp=ichar(sideload(id)(2:2))-48
1606 iface=10*nelem+jltyp
1608 & coords,iselect,six,iface,tieset,istartset,
1609 & iendset,ialset,ntie,entity)
1629 xkl(k,l)=xkl(k,l)+shp2(l,ii)*xl2(k,ii)
1636 if((nope.eq.20).or.(nope.eq.8).or.
1637 & (nope.eq.11))
then 1639 ipointeri=(ifaceq(ii,ig)-1)*3
1640 elseif((nope.eq.10).or.(nope.eq.4))
then 1641 ipointeri=(ifacet(ii,ig)-1)*3
1643 ipointeri=(ifacew(ii,ig)-1)*3
1647 if((nope.eq.20).or.(nope.eq.8)
1648 & .or.(nope.eq.11))
then 1650 ipointerj=(ifaceq(jj,ig)-1)*3
1651 elseif((nope.eq.10).or.(nope.eq.4))
then 1652 ipointerj=(ifacet(jj,ig)-1)*3
1654 ipointerj=(ifacew(jj,ig)-1)*3
1660 if(sideload(id)(3:4).ne.
'SM')
then 1667 if(k.lt.l) eknlsign=-1.d0
1668 elseif(k*l.eq.3)
then 1670 if(k.gt.l) eknlsign=-1.d0
1673 if(k.lt.l) eknlsign=-1.d0
1675 term=weight*xload(1,id)*shp2(4,ii)*
1676 & eknlsign*(xsj2(1)*
1677 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1678 & shp2(2,jj))+xsj2(2)*
1679 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1680 & shp2(3,jj))+xsj2(3)*
1681 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1683 s(ipointeri+k,ipointerj+l)=
1684 & s(ipointeri+k,ipointerj+l)+term/2.d0
1685 s(ipointerj+l,ipointeri+k)=
1686 & s(ipointerj+l,ipointeri+k)+term/2.d0
1697 if(k.lt.l) eknlsign=-1.d0
1698 elseif(k*l.eq.3)
then 1700 if(k.gt.l) eknlsign=-1.d0
1703 if(k.lt.l) eknlsign=-1.d0
1705 term=-weight*stre(kk,k)*shp2(4,ii)*
1706 & eknlsign*(xsj2(1)*
1707 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1708 & shp2(2,jj))+xsj2(2)*
1709 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1710 & shp2(3,jj))+xsj2(3)*
1711 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1713 s(ipointeri+kk,ipointerj+l)=
1714 & s(ipointeri+kk,ipointerj+l)+term/2.d0
1715 s(ipointerj+l,ipointeri+kk)=
1716 & s(ipointerj+l,ipointeri+kk)+term/2.d0
1734 if(((lakonl(4:5).eq.
'8 ').or.
1735 & ((lakonl(4:6).eq.
'20R').and.(lakonl(7:8).ne.
'BR'))).and.
1736 & ((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
1737 & (lakonl(7:7).eq.
'E')))
then 1747 sax(i,j)=s(k,l)*iperm(i)*iperm(j)/(k*l)
1752 s(i,j)=s(i,j)+sax(i,j)
1756 if((nload.ne.0).or.(nbody.ne.0))
then 1759 ffax(i)=ff(k)*iperm(i)/k
1767 summass=2.d0*summass
1777 sax(i,j)=sm(k,l)*iperm(i)*iperm(j)/(k*l)
1782 sm(i,j)=sm(i,j)+sax(i,j)
1788 if((mass.eq.1).and.(iexpl.gt.1))
then 1798 do i=3*nopev+1,3*nope,3
1806 elseif(nope.eq.10)
then 1808 elseif(nope.eq.15)
then 1812 if((nope.eq.20).or.(nope.eq.10).or.
1813 & (nope.eq.15))
then 1814 factore=summass*alp/(1.d0+alp)/sume
1815 factorm=summass/(1.d0+alp)/summ
1817 factore=summass/sume
1821 sm(i,i)=sm(i,i)*factore
1825 do i=3*nopev+1,3*nope,3
1826 sm(i,i)=sm(i,i)*factorm
1836 if(sigma.le.0.d0)
then 1837 if(idesvar.eq.0)
then 1845 if((rhsi.eq.1).and.(
idist.eq.1))
then 1854 ds1(i,j)=s(i,j)-s0(i,j)
1866 dfl(idesvar,i)=dfl(idesvar,i)
1871 dfl(idesvar,60+i)=dfl(idesvar,60+i)
1872 & +ds1(i,l)*vl(k,26+j)
1877 dfl(idesvar,i)=dfl(idesvar,i)
1882 dfl(idesvar,60+i)=dfl(idesvar,60+i)
1883 & +ds1(l,i)*vl(k,26+j)
1892 dfl(idesvar,i)=-dfl(idesvar,i)/distmin
1896 dfl(idesvar,60+i)=-dfl(idesvar,60+i)/distmin
1904 if(idesvar.eq.0)
then 1908 s0(i,j)=s(i,j)-sigma*sm(i,j)
1912 if((rhsi.eq.1).and.(
idist.eq.1))
then 1921 ds1(i,j)=s(i,j)-sigma*sm(i,j)-s0(i,j)
1933 dfl(idesvar,i)=dfl(idesvar,i)
1938 dfl(idesvar,60+i)=dfl(idesvar,60+i)
1939 & +ds1(i,l)*vl(k,26+j)
1944 dfl(idesvar,i)=dfl(idesvar,i)
1949 dfl(idesvar,60+i)=dfl(idesvar,60+i)
1950 & +ds1(l,i)*vl(k,26+j)
1959 dfl(idesvar,i)=-dfl(idesvar,i)/distmin
1963 dfl(idesvar,60+i)=-dfl(idesvar,60+i)/distmin
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 shape9q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape9q.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 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
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 nident2(x, px, n, id)
Definition: nident2.f:27
subroutine anisonl(w, vo, elas, s, ii1, jj1, weight)
Definition: anisonl.f:20
subroutine shape15w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape15w.f:20
subroutine shape20h_ax(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h_ax.f:20
subroutine hgstiffness(s, elas, a, gs)
Definition: hgstiffness.f:20
static ITG * idist
Definition: radflowload.c:39
subroutine orthonl(w, vo, elas, s, ii1, jj1, weight)
Definition: orthonl.f:20
subroutine lintemp_th(t0, vold, konl, nope, jj, t0l, t1l, mi)
Definition: lintemp_th.f:20
subroutine shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.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 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 shape8hu(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape8hu.f:20
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20
subroutine anisotropic(anisol, anisox)
Definition: anisotropic.f:20
subroutine springstiff_n2f(xl, elas, konl, voldl, s, imat, elcon, nelcon, ncmat_, ntmat_, nope, lakonl, t1l, kode, elconloc, plicon, nplicon, npmat_, iperturb, springarea, nmethod, mi, ne0, nstate_, xstateini, xstate, reltime, nasym, ielorien, orab, norien, nelem)
Definition: springstiff_n2f.f:24
subroutine springstiff_f2f(xl, elas, voldl, s, imat, elcon, nelcon, ncmat_, ntmat_, nope, lakonl, t1l, kode, elconloc, plicon, nplicon, npmat_, iperturb, springarea, nmethod, mi, ne0, nstate_, xstateini, xstate, reltime, nasym, iloc, jfaces, igauss, pslavsurf, pmastsurf, clearini, kscale)
Definition: springstiff_f2f.f:24
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 wcoef(v, vo, al, um)
Definition: wcoef.f:20
subroutine interpolsubmodel(integerglob, doubleglob, value, coords, iselect, nselect, nodeface, tieset, istartset, iendset, ialset, ntie, entity)
Definition: interpolsubmodel.f:22
subroutine dload(f, kstep, kinc, time, noel, npt, layer, kspt, coords, jltyp, loadtype, vold, co, lakonl, konl, ipompc, nodempc, coefmpc, nmpc, ikmpc, ilmpc, iscale, veold, rho, amat, mi)
Definition: dload.f:23