49 character*20 sideload(*)
50 character*80 matname(*),amat
51 character*81 tieset(3,*)
53 integer konl(26),ifaceq(8,6),nelemload(2,*),nbody,nelem,
54 & mi(*),iloc,jfaces,igauss,mortar,kon(*),ielprop(*),null,
55 & mattyp,ithermal,iperturb(*),nload,
idist,i,j,k,l,i1,i2,j1,
56 & nmethod,k1,l1,ii,jj,ii1,jj1,id,ipointer,ig,m1,m2,m3,m4,kk,
57 & nelcon(2,*),nrhcon(*),nalcon(2,*),ielmat(mi(3),*),six,
58 & ielorien(mi(3),*),ilayer,nlayer,ki,kl,ipkon(*),indexe,
59 & ntmat_,nope,nopes,norien,ihyper,iexpl,kode,imat,mint2d,
60 & mint3d,ifacet(6,4),nopev,iorien,istiff,ncmat_,iface,
61 & ifacew(8,5),intscheme,n,ipointeri,ipointerj,istep,iinc,
62 & layer,kspt,jltyp,iflag,iperm(60),m,ipompc(*),nodempc(3,*),
63 & nmpc,ikmpc(*),ilmpc(*),iscale,nstate_,ne0,iselect(6),
64 & istartset(*),iendset(*),ialset(*),ntie,integerglob(*),nasym,
65 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),npmat_,nopered,
66 & ndesi,nodedesi(*),idesvar,node,kscale,iactive,ij,
67 & mass,stiffness,buckling,rhsi,coriolis,icoordinate,idir,ne,
68 & istartelem(*),ialelem(*),ieigenfrequency
70 real*8 co(3,*),xl(3,26),shp(4,26),xs2(3,7),veold(0:mi(2),*),
71 & s(60,60),w(3,3),p1(3),p2(3),bodyf(3),bodyfx(3),sigma,
72 & ff(60),bf(3),q(3),shpj(4,26),elcon(0:ncmat_,ntmat_,*),t(3),
73 & rhcon(0:1,ntmat_,*),xkl(3,3),eknlsign,reltime,prop(*),
74 & alcon(0:6,ntmat_,*),alzero(*),orab(7,*),t0(*),t1(*),
75 & anisox(3,3,3,3),voldl(0:mi(2),26),vo(3,3),xloadold(2,*),
76 & xl2(3,9),xsj2(3),shp2(7,9),vold(0:mi(2),*),xload(2,*),
77 & xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*),
78 & vv(3,3,3,3),springarea(2,*),
thickness,tlayer(4),dlayer(4),
79 & om,omx,e,un,al,um,xi,et,ze,tt,const,xsj,xsjj,sm(60,60),
80 & sti(6,mi(1),*),stx(6,mi(1),*),s11,s22,s33,s12,s13,s23,s11b,
81 & s22b,s33b,s12b,s13b,s23b,t0l,t1l,coefmpc(*),xlayer(mi(3),4),
82 & senergy,senergyb,rho,elas(21),summass,summ,thicke(mi(3),*),
83 & sume,factorm,factore,alp,elconloc(21),eth(6),doubleglob(*),
84 & weight,coords(3),dmass,xl1(3,9),term,clearini(3,9,*),
85 & plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*),
86 & xstiff(27,mi(1),*),plconloc(802),dtime,ttime,time,tvar(2),
87 & sax(60,60),ffax(60),gs(8,4),a,stress(6),stre(3,3),
88 & pslavsurf(3,*),pmastsurf(6,*),distmin,s0(60,60),xdesi(3,*),
89 & ds1(60,60),ff0(60),dfl(ndesi,60),dxstiff(27,mi(1),ne,*),
90 & vl(0:mi(2),26),v(0:mi(2),*)
92 intent(in) co,kon,lakonl,p1,p2,omx,bodyfx,nbody,
93 & nelem,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
94 & ielmat,ielorien,norien,orab,ntmat_,
95 & t0,t1,ithermal,vold,iperturb,nelemload,
96 & sideload,nload,
idist,sti,stx,iexpl,plicon,
97 & nplicon,plkcon,nplkcon,xstiff,npmat_,dtime,
98 & matname,mi,ncmat_,mass,stiffness,buckling,rhsi,intscheme,
99 & ttime,time,istep,iinc,coriolis,xloadold,reltime,
100 & ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,veold,
101 & nstate_,xstateini,ne0,ipkon,thicke,
102 & integerglob,doubleglob,tieset,istartset,iendset,ialset,ntie,
103 & nasym,pslavsurf,pmastsurf,mortar,clearini,ielprop,prop,
104 & distmin,ndesi,nodedesi,icoordinate,xdesi,istartelem,ialelem,
107 intent(inout) sm,xload,nmethod,springarea,xstate,dfl
111 ifaceq=reshape((/4,3,2,1,11,10,9,12,
112 & 5,6,7,8,13,14,15,16,
113 & 1,2,6,5,9,18,13,17,
114 & 2,3,7,6,10,19,14,18,
115 & 3,4,8,7,11,20,15,19,
116 & 4,1,5,8,12,17,16,20/),(/8,6/))
117 ifacet=reshape((/1,3,2,7,6,5,
120 & 1,4,3,8,10,7/),(/6,4/))
121 ifacew=reshape((/1,3,2,9,8,7,0,0,
122 & 4,5,6,10,11,12,0,0,
123 & 1,2,5,4,7,14,10,13,
124 & 2,3,6,5,8,15,11,14,
125 & 4,6,3,1,12,15,9,13/),(/8,5/))
128 iperm=(/13,14,-15,16,17,-18,19,20,-21,22,23,-24,
129 & 1,2,-3,4,5,-6,7,8,-9,10,11,-12,
130 & 37,38,-39,40,41,-42,43,44,-45,46,47,-48,
131 & 25,26,-27,28,29,-30,31,32,-33,34,35,-36,
132 & 49,50,-51,52,53,-54,55,56,-57,58,59,-60/)
141 if(lakonl(1:5).eq.
'C3D8I')
then 145 elseif(lakonl(4:5).eq.
'20')
then 150 elseif(lakonl(4:4).eq.
'8')
then 154 elseif(lakonl(4:5).eq.
'10')
then 158 elseif(lakonl(4:4).eq.
'4')
then 162 elseif(lakonl(4:5).eq.
'15')
then 165 elseif(lakonl(4:4).eq.
'6')
then 168 elseif(lakonl(1:2).eq.
'ES')
then 169 if(lakonl(7:7).eq.
'C')
then 171 nope=ichar(lakonl(8:8))-47
172 konl(nope+1)=kon(indexe+nope+1)
173 elseif(mortar.eq.1)
then 177 nope=ichar(lakonl(8:8))-47
179 elseif(lakonl(1:4).eq.
'MASS')
then 185 if(lakonl(7:8).ne.
'LC')
then 190 iorien=ielorien(1,nelem)
195 if(nelcon(1,imat).lt.0)
then 200 elseif(lakonl(4:5).eq.
'20')
then 208 if(ielmat(k,nelem).ne.0)
then 221 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
238 elseif(lakonl(4:5).eq.
'15')
then 246 if(ielmat(k,nelem).ne.0)
then 259 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
279 if(intscheme.eq.0)
then 280 if(lakonl(4:5).eq.
'8R')
then 283 elseif(lakonl(4:7).eq.
'20RB')
then 284 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 290 & null,xi,et,ze,weight)
292 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
then 293 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
294 & (lakonl(7:7).eq.
'E'))
then 299 if(lakonl(7:8).eq.
'LC')
then 305 elseif(lakonl(4:4).eq.
'2')
then 308 elseif(lakonl(4:5).eq.
'10')
then 311 elseif(lakonl(4:4).eq.
'4')
then 314 elseif(lakonl(4:5).eq.
'15')
then 315 if(lakonl(7:8).eq.
'LC')
then 320 elseif(lakonl(4:4).eq.
'6')
then 326 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 328 if(lakonl(4:4).eq.
'8')
then 329 if(lakonl(5:5).eq.
'R')
then 335 if(lakonl(6:6).eq.
'R')
then 341 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 343 if(lakonl(4:5).eq.
'10')
then 348 elseif((lakonl(4:5).eq.
'15').or.(lakonl(4:4).eq.
'6'))
then 357 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
358 & (stiffness.eq.1).and.(buckling.eq.0))
then 360 konl(i1)=kon(indexe+i1)
362 voldl(i2,i1)=vold(i2,konl(i1))
372 do ij=istartelem(nelem),istartelem(nelem+1)-1
377 if(idesvar.gt.0)
then 379 if(icoordinate.eq.1)
then 385 if(node.eq.nodedesi(idesvar))
then 406 konl(i)=kon(indexe+i)
408 xl(j,i)=co(j,konl(i))
416 if((idesvar.gt.0).and.(icoordinate.eq.1))
then 418 xl(i,iactive)=xl(i,iactive)+xdesi(i,idesvar)
425 if((mass.eq.1).or.(buckling.eq.1).or.(coriolis.eq.1))
then 461 if(iperturb(2).eq.0)
then 464 voldl(i2,i1)=vold(i2,konl(i1))
470 if(lakonl(1:2).eq.
'ES')
then 471 if(lakonl(7:7).ne.
'C')
then 474 if(ithermal.eq.1)
then 475 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
476 t1l=(t1(konl(1))+t1(konl(2)))/2.d0
477 elseif(ithermal.ge.2)
then 478 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
479 t1l=(vold(0,konl(1))+vold(0,konl(2)))/2.d0
482 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'1').or.
483 & (lakonl(7:7).eq.
'2').or.(mortar.eq.0))
then 485 & nelcon,ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,
486 & plicon,nplicon,npmat_,iperturb,
487 & springarea(1,konl(nope+1)),nmethod,mi,ne0,nstate_,
488 & xstateini,xstate,reltime,nasym,ielorien,orab,norien,
490 elseif(mortar.eq.1)
then 491 iloc=kon(indexe+nope+1)
492 jfaces=kon(indexe+nope+2)
493 igauss=kon(indexe+nope+1)
495 & ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,plicon,
496 & nplicon,npmat_,iperturb,springarea(1,iloc),nmethod,
497 & mi,ne0,nstate_,xstateini,xstate,reltime,
498 & nasym,iloc,jfaces,igauss,pslavsurf,
499 & pmastsurf,clearini,kscale)
501 elseif(lakonl(1:4).eq.
'MASS')
then 507 sm(i1,i1)=elcon(1,1,imat)
520 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 523 q(i1)=xl(i1,1)+voldl(i1,1)
528 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
533 ff(i1)=bodyf(i1)+(q(i1)-const*p2(i1))*om
549 if(intscheme.eq.0)
then 550 if(lakonl(4:5).eq.
'8R')
then 555 elseif(lakonl(4:7).eq.
'20RB')
then 556 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 560 weight=weight3d13(kk)
563 & kk,xi,et,ze,weight)
565 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
567 if(lakonl(7:8).ne.
'LC')
then 588 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
592 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
594 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
598 imat=ielmat(ilayer,nelem)
601 iorien=ielorien(ilayer,nelem)
606 if(nelcon(1,imat).lt.0)
then 612 elseif(lakonl(4:4).eq.
'2')
then 617 elseif(lakonl(4:5).eq.
'10')
then 622 elseif(lakonl(4:4).eq.
'4')
then 627 elseif(lakonl(4:5).eq.
'15')
then 628 if(lakonl(7:8).ne.
'LC')
then 640 weight=weight3d10(kl)
649 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
653 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
655 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
659 imat=ielmat(ilayer,nelem)
662 iorien=ielorien(ilayer,nelem)
667 if(nelcon(1,imat).lt.0)
then 673 elseif(lakonl(4:4).eq.
'6')
then 680 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 685 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 708 if(lakonl(1:5).eq.
'C3D8R')
then 710 elseif(lakonl(1:5).eq.
'C3D8I')
then 711 call shape8hu(xi,et,ze,xl,xsj,shp,iflag)
712 elseif(nope.eq.20)
then 714 if(lakonl(7:7).eq.
'A')
then 716 elseif((lakonl(7:7).eq.
'E').or.(lakonl(7:7).eq.
'S'))
then 719 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
721 elseif(nope.eq.8)
then 722 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
723 elseif(nope.eq.10)
then 725 elseif(nope.eq.4)
then 726 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
727 elseif(nope.eq.15)
then 728 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
730 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
735 if(xsj.lt.1.d-20)
then 736 write(*,*)
'*ERROR in e_c3d: nonpositive jacobian' 737 write(*,*)
' determinant in element',nelem
744 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
745 & (stiffness.eq.1).and.(buckling.eq.0))
then 762 if(ithermal.eq.1)
then 763 if(lakonl(4:5).eq.
'8 ')
then 765 t0l=t0l+t0(konl(i1))/8.d0
766 t1l=t1l+t1(konl(i1))/8.d0
768 elseif(lakonl(4:6).eq.
'20 ')
then 770 call lintemp(t0,t1,konl,nopered,kk,t0l,t1l)
771 elseif(lakonl(4:6).eq.
'10T')
then 776 t0l=t0l+shp(4,i1)*t0(konl(i1))
777 t1l=t1l+shp(4,i1)*t1(konl(i1))
780 elseif(ithermal.ge.2)
then 781 if(lakonl(4:5).eq.
'8 ')
then 783 t0l=t0l+t0(konl(i1))/8.d0
784 t1l=t1l+vold(0,konl(i1))/8.d0
786 elseif(lakonl(4:6).eq.
'20 ')
then 788 call lintemp_th(t0,vold,konl,nopered,kk,t0l,t1l,mi)
789 elseif(lakonl(4:6).eq.
'10T')
then 794 t0l=t0l+shp(4,i1)*t0(konl(i1))
795 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
809 coords(j)=coords(j)+shp(4,i1)*co(j,konl(i1))
824 if((icoordinate.eq.1).or.(idesvar.eq.0))
then 826 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
827 & nelem,ithermal,alzero,mattyp,t0l,t1l,
828 & ihyper,istiff,elconloc,eth,kode,plicon,
829 & nplicon,plkcon,nplkcon,npmat_,
830 & plconloc,mi(1),dtime,kk,
833 idir=idesvar-3*((idesvar-1)/3)
835 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
836 & nelem,ithermal,alzero,mattyp,t0l,t1l,
837 & ihyper,istiff,elconloc,eth,kode,plicon,
838 & nplicon,plkcon,nplkcon,npmat_,
839 & plconloc,mi(1),dtime,kk,
840 & dxstiff(1,1,1,idir),ncmat_)
848 al=un*um/(1.d0-2.d0*un)
850 elseif(mattyp.eq.2)
then 862 bodyf(ii)=bodyfx(ii)*rho
867 if(buckling.eq.1)
then 885 shpj(1,i1)=shp(1,i1)*xsjj
886 shpj(2,i1)=shp(2,i1)*xsjj
887 shpj(3,i1)=shp(3,i1)*xsjj
888 shpj(4,i1)=shp(4,i1)*xsj
894 if((stiffness.eq.1).or.(mass.eq.1).or.(buckling.eq.1).or.
895 & (coriolis.eq.1))
then 897 if(((iperturb(1).ne.1).and.(iperturb(2).ne.1)).or.
898 & (buckling.eq.1))
then 910 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
919 if(buckling.eq.0)
then 923 s(ii1,jj1)=s(ii1,jj1)+(al*w(1,1)+
924 & um*(2.d0*w(1,1)+w(2,2)+w(3,3)))*weight
926 s(ii1,jj1+1)=s(ii1,jj1+1)+(al*w(1,2)+
928 s(ii1,jj1+2)=s(ii1,jj1+2)+(al*w(1,3)+
930 s(ii1+1,jj1)=s(ii1+1,jj1)+(al*w(2,1)+
932 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+(al*w(2,2)+
933 & um*(2.d0*w(2,2)+w(1,1)+w(3,3)))*weight
934 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+(al*w(2,3)+
936 s(ii1+2,jj1)=s(ii1+2,jj1)+(al*w(3,1)+
938 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+(al*w(3,2)+
940 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+(al*w(3,3)+
941 & um*(2.d0*w(3,3)+w(2,2)+w(1,1)))*weight
943 elseif(mattyp.eq.2)
then 945 s(ii1,jj1)=s(ii1,jj1)+(elas(1)*w(1,1)+
946 & elas(7)*w(2,2)+elas(8)*w(3,3))*weight
947 s(ii1,jj1+1)=s(ii1,jj1+1)+(elas(2)*w(1,2)+
948 & elas(7)*w(2,1))*weight
949 s(ii1,jj1+2)=s(ii1,jj1+2)+(elas(4)*w(1,3)+
950 & elas(8)*w(3,1))*weight
951 s(ii1+1,jj1)=s(ii1+1,jj1)+(elas(7)*w(1,2)+
952 & elas(2)*w(2,1))*weight
953 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+
955 & elas(3)*w(2,2)+elas(9)*w(3,3))*weight
956 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+
958 & elas(9)*w(3,2))*weight
959 s(ii1+2,jj1)=s(ii1+2,jj1)+
961 & elas(4)*w(3,1))*weight
962 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+
964 & elas(5)*w(3,2))*weight
965 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+
967 & elas(9)*w(2,2)+elas(6)*w(3,3))*weight
975 s(ii1+i1-1,jj1+j1-1)=
976 & s(ii1+i1-1,jj1+j1-1)
977 & +anisox(i1,k1,j1,l1)
989 sm(ii1,jj1)=sm(ii1,jj1)
990 & +rho*shpj(4,ii)*shp(4,jj)*weight
991 sm(ii1+1,jj1+1)=sm(ii1,jj1)
992 sm(ii1+2,jj1+2)=sm(ii1,jj1)
997 if(coriolis.eq.1)
then 999 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
1000 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
1001 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
1002 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
1003 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
1004 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
1005 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
1013 & (s11b*w(1,1)+s12b*(w(1,2)+w(2,1))
1014 & +s13b*(w(1,3)+w(3,1))+s22b*w(2,2)
1015 & +s23b*(w(2,3)+w(3,2))+s33b*w(3,3))*weight
1016 sm(ii1,jj1)=sm(ii1,jj1)-senergyb
1017 sm(ii1+1,jj1+1)=sm(ii1+1,jj1+1)-senergyb
1018 sm(ii1+2,jj1+2)=sm(ii1+2,jj1+2)-senergyb
1037 vo(i1,j1)=vo(i1,j1)+shp(j1,k1)*voldl(i1,k1)
1042 if(mattyp.eq.1)
then 1043 call wcoef(vv,vo,al,um)
1050 if((mass.eq.1).and.(iexpl.gt.1))
then 1051 summass=summass+rho*xsj
1065 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
1069 if(mattyp.eq.1)
then 1075 s(ii1+m2-1,jj1+m1-1)=
1076 & s(ii1+m2-1,jj1+m1-1)
1077 & +vv(m4,m3,m2,m1)*w(m4,m3)*weight
1083 elseif(mattyp.eq.2)
then 1085 call orthonl(w,vo,elas,s,ii1,jj1,weight)
1089 call anisonl(w,vo,elas,s,ii1,jj1,weight)
1096 & (s11*w(1,1)+s12*(w(1,2)+w(2,1))
1097 & +s13*(w(1,3)+w(3,1))+s22*w(2,2)
1098 & +s23*(w(2,3)+w(3,2))+s33*w(3,3))*weight
1099 s(ii1,jj1)=s(ii1,jj1)+senergy
1100 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+senergy
1101 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+senergy
1105 if((mass.eq.1).and.(om.gt.0.d0))
then 1106 dmass=shpj(4,ii)*shp(4,jj)*weight*om
1108 s(ii1+m1-1,jj1+m1-1)=s(ii1+m1-1,jj1+m1-1)-
1111 s(ii1+m1-1,jj1+m2-1)=s(ii1+m1-1,jj1+m2-1)+
1112 & dmass*p2(m1)*p2(m2)
1120 sm(ii1,jj1)=sm(ii1,jj1)
1121 & +rho*shpj(4,ii)*shp(4,jj)*weight
1122 sm(ii1+1,jj1+1)=sm(ii1,jj1)
1123 sm(ii1+2,jj1+2)=sm(ii1,jj1)
1128 if(coriolis.eq.1)
then 1130 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
1131 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
1132 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
1133 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
1134 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
1135 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
1136 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
1148 if(lakonl(1:5).eq.
'C3D8R')
then 1159 call nident2(nelemload,nelem,nload,id)
1161 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1162 if((sideload(id)(1:2).ne.
'BX').and.
1163 & (sideload(id)(1:2).ne.
'BY').and.
1164 & (sideload(id)(1:2).ne.
'BZ'))
then 1168 if(sideload(id)(3:4).eq.
'NU')
then 1172 coords(j)=coords(j)+
1173 & shp(4,i1)*xl(j,i1)
1176 if(sideload(id)(1:2).eq.
'BX')
then 1178 elseif(sideload(id)(1:2).eq.
'BY')
then 1180 elseif(sideload(id)(1:2).eq.
'BZ')
then 1184 call dload(xload(1,id),istep,iinc,tvar,nelem,i,
1185 & layer,kspt,coords,jltyp,sideload(id),vold,co,
1186 & lakonl,konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,
1187 & ilmpc,iscale,veold,rho,amat,mi)
1188 if((nmethod.eq.1).and.(iscale.ne.0))
1189 & xload(1,id)=xloadold(1,id)+
1190 & (xload(1,id)-xloadold(1,id))*reltime
1194 if(sideload(id)(1:2).eq.
'BX')
1195 & ff(jj1)=ff(jj1)+xload(1,id)*shpj(4,jj)*weight
1196 if(sideload(id)(1:2).eq.
'BY')
1197 & ff(jj1+1)=ff(jj1+1)+xload(1,id)*shpj(4,jj)*weight
1198 if(sideload(id)(1:2).eq.
'BZ')
1199 & ff(jj1+2)=ff(jj1+2)+xload(1,id)*shpj(4,jj)*weight
1217 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1219 q(i1)=q(i1)+shp(4,j1)*xl(i1,j1)
1223 q(i1)=q(i1)+shp(4,j1)*
1224 & (xl(i1,j1)+voldl(i1,j1))
1230 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
1235 bf(i1)=bodyf(i1)+(q(i1)-const*p2(i1))*om
1244 ff(jj1)=ff(jj1)+bf(1)*shpj(4,jj)*weight
1245 ff(jj1+1)=ff(jj1+1)+bf(2)*shpj(4,jj)*weight
1246 ff(jj1+2)=ff(jj1+2)+bf(3)*shpj(4,jj)*weight
1259 if((buckling.eq.0).and.(nload.ne.0))
then 1263 call nident2(nelemload,nelem,nload,id)
1265 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1266 if(sideload(id)(1:1).ne.
'P')
then 1271 ig=ichar(sideload(id)(2:2))-48
1276 if(lakonl(4:4).eq.
'6')
then 1284 if(lakonl(4:5).eq.
'15')
then 1295 if((nope.eq.20).or.(nope.eq.8).or.
1296 & (nope.eq.11))
then 1299 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1302 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
1309 xl1(j,i)=co(j,konl(ifaceq(i,ig)))
1315 xl2(j,i)=co(j,konl(ifaceq(i,ig)))+
1316 & vold(j,konl(ifaceq(i,ig)))
1325 if((idesvar.gt.0).and.(icoordinate.eq.1))
then 1327 node=konl(ifaceq(i,ig))
1328 if(node.eq.nodedesi(idesvar))
then 1331 & xl2(j,i)+xdesi(j,idesvar)
1338 elseif((nope.eq.10).or.(nope.eq.4))
then 1339 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1342 xl2(j,i)=co(j,konl(ifacet(i,ig)))
1349 xl1(j,i)=co(j,konl(ifacet(i,ig)))
1355 xl2(j,i)=co(j,konl(ifacet(i,ig)))+
1356 & vold(j,konl(ifacet(i,ig)))
1365 if((idesvar.gt.0).and.(icoordinate.eq.1))
then 1367 node=konl(ifacet(i,ig))
1368 if(node.eq.nodedesi(idesvar))
then 1371 & xl2(j,i)+xdesi(j,idesvar)
1379 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1382 xl2(j,i)=co(j,konl(ifacew(i,ig)))
1389 xl1(j,i)=co(j,konl(ifacew(i,ig)))
1395 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
1396 & vold(j,konl(ifacew(i,ig)))
1405 if((idesvar.gt.0).and.(icoordinate.eq.1))
then 1407 node=konl(ifacew(i,ig))
1408 if(node.eq.nodedesi(idesvar))
then 1411 & xl2(j,i)+xdesi(j,idesvar)
1420 if((lakonl(4:5).eq.
'8R').or.
1421 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 1425 elseif((lakonl(4:4).eq.
'8').or.
1426 & (lakonl(4:6).eq.
'20R').or.
1427 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 1431 elseif(lakonl(4:4).eq.
'2')
then 1435 elseif((lakonl(4:5).eq.
'10').or.
1436 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 1440 elseif((lakonl(4:4).eq.
'4').or.
1441 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 1449 call shape9q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1450 elseif(nopes.eq.8)
then 1451 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1452 elseif(nopes.eq.4)
then 1453 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1454 elseif(nopes.eq.6)
then 1455 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1456 elseif(nopes.eq.7)
then 1457 call shape7tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1459 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1465 if(sideload(id)(3:4).eq.
'NU')
then 1469 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1473 jltyp=ichar(sideload(id)(2:2))-48
1476 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1477 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1478 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1479 & iscale,veold,rho,amat,mi)
1480 if((nmethod.eq.1).and.(iscale.ne.0))
1481 & xload(1,id)=xloadold(1,id)+
1482 & (xload(1,id)-xloadold(1,id))*reltime
1483 elseif(sideload(id)(3:4).eq.
'SM')
then 1491 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1495 jltyp=ichar(sideload(id)(2:2))-48
1502 iface=10*nelem+jltyp
1504 & coords,iselect,six,iface,tieset,istartset,
1505 & iendset,ialset,ntie,entity)
1510 t(1)=stress(1)*xsj2(1)+stress(4)*xsj2(2)+
1512 t(2)=stress(4)*xsj2(1)+stress(2)*xsj2(2)+
1514 t(3)=stress(6)*xsj2(1)+stress(5)*xsj2(2)+
1525 if((nope.eq.20).or.(nope.eq.8).or.
1526 & (nope.eq.11))
then 1528 ipointer=(ifaceq(k,ig)-1)*3
1529 elseif((nope.eq.10).or.(nope.eq.4))
then 1530 ipointer=(ifacet(k,ig)-1)*3
1532 ipointer=(ifacew(k,ig)-1)*3
1534 ff(ipointer+1)=ff(ipointer+1)-shp2(4,k)*xload(1,id)
1536 ff(ipointer+2)=ff(ipointer+2)-shp2(4,k)*xload(1,id)
1538 ff(ipointer+3)=ff(ipointer+3)-shp2(4,k)*xload(1,id)
1548 elseif((mass.eq.1).and.
1549 & ((iperturb(1).eq.1).or.(iperturb(2).eq.1)))
then 1551 call shape9q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1552 elseif(nopes.eq.8)
then 1553 call shape8q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1554 elseif(nopes.eq.4)
then 1555 call shape4q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1556 elseif(nopes.eq.6)
then 1557 call shape6tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1558 elseif(nopes.eq.7)
then 1559 call shape7tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1561 call shape3tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1567 if(sideload(id)(3:4).eq.
'NU')
then 1571 coords(k)=coords(k)+xl1(k,j)*shp2(4,j)
1575 jltyp=ichar(sideload(id)(2:2))-48
1578 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1579 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1580 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1581 & iscale,veold,rho,amat,mi)
1582 if((nmethod.eq.1).and.(iscale.ne.0))
1583 & xload(1,id)=xloadold(1,id)+
1584 & (xload(1,id)-xloadold(1,id))*reltime
1585 elseif(sideload(id)(3:4).eq.
'SM')
then 1593 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1597 jltyp=ichar(sideload(id)(2:2))-48
1604 iface=10*nelem+jltyp
1606 & coords,iselect,six,iface,tieset,istartset,
1607 & iendset,ialset,ntie,entity)
1627 xkl(k,l)=xkl(k,l)+shp2(l,ii)*xl2(k,ii)
1634 if((nope.eq.20).or.(nope.eq.8).or.
1635 & (nope.eq.11))
then 1637 ipointeri=(ifaceq(ii,ig)-1)*3
1638 elseif((nope.eq.10).or.(nope.eq.4))
then 1639 ipointeri=(ifacet(ii,ig)-1)*3
1641 ipointeri=(ifacew(ii,ig)-1)*3
1645 if((nope.eq.20).or.(nope.eq.8)
1646 & .or.(nope.eq.11))
then 1648 ipointerj=(ifaceq(jj,ig)-1)*3
1649 elseif((nope.eq.10).or.(nope.eq.4))
then 1650 ipointerj=(ifacet(jj,ig)-1)*3
1652 ipointerj=(ifacew(jj,ig)-1)*3
1658 if(sideload(id)(3:4).ne.
'SM')
then 1665 if(k.lt.l) eknlsign=-1.d0
1666 elseif(k*l.eq.3)
then 1668 if(k.gt.l) eknlsign=-1.d0
1671 if(k.lt.l) eknlsign=-1.d0
1673 term=weight*xload(1,id)*shp2(4,ii)*
1674 & eknlsign*(xsj2(1)*
1675 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1676 & shp2(2,jj))+xsj2(2)*
1677 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1678 & shp2(3,jj))+xsj2(3)*
1679 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1681 s(ipointeri+k,ipointerj+l)=
1682 & s(ipointeri+k,ipointerj+l)+term/2.d0
1683 s(ipointerj+l,ipointeri+k)=
1684 & s(ipointerj+l,ipointeri+k)+term/2.d0
1695 if(k.lt.l) eknlsign=-1.d0
1696 elseif(k*l.eq.3)
then 1698 if(k.gt.l) eknlsign=-1.d0
1701 if(k.lt.l) eknlsign=-1.d0
1703 term=-weight*stre(kk,k)*shp2(4,ii)*
1704 & eknlsign*(xsj2(1)*
1705 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1706 & shp2(2,jj))+xsj2(2)*
1707 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1708 & shp2(3,jj))+xsj2(3)*
1709 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1711 s(ipointeri+kk,ipointerj+l)=
1712 & s(ipointeri+kk,ipointerj+l)+term/2.d0
1713 s(ipointerj+l,ipointeri+kk)=
1714 & s(ipointerj+l,ipointeri+kk)+term/2.d0
1732 if(((lakonl(4:5).eq.
'8 ').or.
1733 & ((lakonl(4:6).eq.
'20R').and.(lakonl(7:8).ne.
'BR'))).and.
1734 & ((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
1735 & (lakonl(7:7).eq.
'E')))
then 1745 sax(i,j)=s(k,l)*iperm(i)*iperm(j)/(k*l)
1750 s(i,j)=s(i,j)+sax(i,j)
1754 if((nload.ne.0).or.(nbody.ne.0))
then 1757 ffax(i)=ff(k)*iperm(i)/k
1765 summass=2.d0*summass
1775 sax(i,j)=sm(k,l)*iperm(i)*iperm(j)/(k*l)
1780 sm(i,j)=sm(i,j)+sax(i,j)
1786 if((mass.eq.1).and.(iexpl.gt.1))
then 1796 do i=3*nopev+1,3*nope,3
1804 elseif(nope.eq.10)
then 1806 elseif(nope.eq.15)
then 1810 if((nope.eq.20).or.(nope.eq.10).or.
1811 & (nope.eq.15))
then 1812 factore=summass*alp/(1.d0+alp)/sume
1813 factorm=summass/(1.d0+alp)/summ
1815 factore=summass/sume
1819 sm(i,i)=sm(i,i)*factore
1823 do i=3*nopev+1,3*nope,3
1824 sm(i,i)=sm(i,i)*factorm
1834 if(sigma.le.0.d0)
then 1836 if((ieigenfrequency.ne.1).and.(iperturb(2).eq.1))
then 1841 if(idesvar.eq.0)
then 1843 if((rhsi.eq.1).and.(
idist.eq.1))
then 1850 if((rhsi.eq.1).and.(
idist.eq.1))
then 1852 dfl(idesvar,i)=(ff(i)-ff0(i))/distmin
1864 if(idesvar.eq.0)
then 1872 if((rhsi.eq.1).and.(
idist.eq.1))
then 1881 ds1(i,j)=s(i,j)-s0(i,j)
1890 dfl(idesvar,i)=dfl(idesvar,i)
1893 dfl(idesvar,i)=dfl(idesvar,i)
1900 if((rhsi.eq.1).and.(
idist.eq.1))
then 1902 dfl(idesvar,i)=(ff(i)-ff0(i)-dfl(idesvar,i))
1907 dfl(idesvar,i)=-dfl(idesvar,i)/distmin
1917 if(idesvar.eq.0)
then 1921 s0(i,j)=s(i,j)-sigma*sm(i,j)
1925 if((rhsi.eq.1).and.(
idist.eq.1))
then 1934 ds1(i,j)=s(i,j)-sigma*sm(i,j)-s0(i,j)
1943 dfl(idesvar,i)=dfl(idesvar,i)
1946 dfl(idesvar,i)=dfl(idesvar,i)
1953 if((rhsi.eq.1).and.(
idist.eq.1))
then 1955 dfl(idesvar,i)=(ff(i)-ff0(i)-dfl(idesvar,i))
1960 dfl(idesvar,i)=-dfl(idesvar,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