45 integer mass,stiffness,buckling,rhsi,coriolis
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),kscale,
64 & istartset(*),iendset(*),ialset(*),ntie,integerglob(*),nasym,
65 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),npmat_,nopered
67 real*8 co(3,*),xl(3,26),shp(4,26),xs2(3,7),veold(0:mi(2),*),
68 & s(60,60),w(3,3),p1(3),p2(3),bodyf(3),bodyfx(3),ff(60),
69 & bf(3),q(3),shpj(4,26),elcon(0:ncmat_,ntmat_,*),t(3),
70 & rhcon(0:1,ntmat_,*),xkl(3,3),eknlsign,reltime,prop(*),
71 & alcon(0:6,ntmat_,*),alzero(*),orab(7,*),t0(*),t1(*),
72 & anisox(3,3,3,3),voldl(0:mi(2),26),vo(3,3),xloadold(2,*),
73 & xl2(3,9),xsj2(3),shp2(7,9),vold(0:mi(2),*),xload(2,*),
74 & xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*),
75 & v(3,3,3,3),springarea(2,*),
thickness,tlayer(4),dlayer(4),
76 & om,omx,e,un,al,um,xi,et,ze,tt,const,xsj,xsjj,sm(60,60),
77 & sti(6,mi(1),*),stx(6,mi(1),*),s11,s22,s33,s12,s13,s23,s11b,
78 & s22b,s33b,s12b,s13b,s23b,t0l,t1l,coefmpc(*),xlayer(mi(3),4),
79 & senergy,senergyb,rho,elas(21),summass,summ,thicke(mi(3),*),
80 & sume,factorm,factore,alp,elconloc(21),eth(6),doubleglob(*),
81 & weight,coords(3),dmass,xl1(3,9),term,clearini(3,9,*),
82 & plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*),
83 & xstiff(27,mi(1),*),plconloc(802),dtime,ttime,time,tvar(2),
84 & sax(60,60),ffax(60),gs(8,4),a,stress(6),stre(3,3),
85 & pslavsurf(3,*),pmastsurf(6,*),xmass
87 intent(in) co,kon,lakonl,p1,p2,omx,bodyfx,nbody,
88 & nelem,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
89 & ielmat,ielorien,norien,orab,ntmat_,
90 & t0,t1,ithermal,vold,iperturb,nelemload,
91 & sideload,nload,
idist,sti,stx,iexpl,plicon,
92 & nplicon,plkcon,nplkcon,xstiff,npmat_,dtime,
93 & matname,mi,ncmat_,mass,stiffness,buckling,rhsi,intscheme,
94 & ttime,time,istep,iinc,coriolis,xloadold,reltime,
95 & ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,veold,
96 & nstate_,xstateini,ne0,ipkon,thicke,
97 & integerglob,doubleglob,tieset,istartset,iendset,ialset,ntie,
98 & nasym,pslavsurf,pmastsurf,mortar,clearini,ielprop,prop
100 intent(inout) s,sm,ff,xload,nmethod,springarea,xstate
104 ifaceq=reshape((/4,3,2,1,11,10,9,12,
105 & 5,6,7,8,13,14,15,16,
106 & 1,2,6,5,9,18,13,17,
107 & 2,3,7,6,10,19,14,18,
108 & 3,4,8,7,11,20,15,19,
109 & 4,1,5,8,12,17,16,20/),(/8,6/))
110 ifacet=reshape((/1,3,2,7,6,5,
113 & 1,4,3,8,10,7/),(/6,4/))
114 ifacew=reshape((/1,3,2,9,8,7,0,0,
115 & 4,5,6,10,11,12,0,0,
116 & 1,2,5,4,7,14,10,13,
117 & 2,3,6,5,8,15,11,14,
118 & 4,6,3,1,12,15,9,13/),(/8,5/))
121 iperm=(/13,14,-15,16,17,-18,19,20,-21,22,23,-24,
122 & 1,2,-3,4,5,-6,7,8,-9,10,11,-12,
123 & 37,38,-39,40,41,-42,43,44,-45,46,47,-48,
124 & 25,26,-27,28,29,-30,31,32,-33,34,35,-36,
125 & 49,50,-51,52,53,-54,55,56,-57,58,59,-60/)
134 if(lakonl(1:5).eq.
'C3D8I')
then 138 elseif(lakonl(4:5).eq.
'20')
then 143 elseif(lakonl(4:4).eq.
'8')
then 147 elseif(lakonl(4:5).eq.
'10')
then 151 elseif(lakonl(4:4).eq.
'4')
then 155 elseif(lakonl(4:5).eq.
'15')
then 158 elseif(lakonl(4:4).eq.
'6')
then 161 elseif(lakonl(1:2).eq.
'ES')
then 162 if(lakonl(7:7).eq.
'C')
then 164 nope=ichar(lakonl(8:8))-47
165 konl(nope+1)=kon(indexe+nope+1)
166 elseif(mortar.eq.1)
then 170 nope=ichar(lakonl(8:8))-47
172 elseif(lakonl(1:4).eq.
'MASS')
then 178 if(lakonl(7:8).ne.
'LC')
then 183 iorien=ielorien(1,nelem)
188 if(nelcon(1,imat).lt.0)
then 193 elseif(lakonl(4:5).eq.
'20')
then 201 if(ielmat(k,nelem).ne.0)
then 214 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
232 elseif(lakonl(4:5).eq.
'15')
then 240 if(ielmat(k,nelem).ne.0)
then 253 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
273 if(intscheme.eq.0)
then 274 if(lakonl(4:5).eq.
'8R')
then 277 elseif(lakonl(4:7).eq.
'20RB')
then 278 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 284 & null,xi,et,ze,weight)
286 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
then 287 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
288 & (lakonl(7:7).eq.
'E'))
then 293 if(lakonl(7:8).eq.
'LC')
then 299 elseif(lakonl(4:4).eq.
'2')
then 302 elseif(lakonl(4:5).eq.
'10')
then 305 elseif(lakonl(4:4).eq.
'4')
then 308 elseif(lakonl(4:5).eq.
'15')
then 309 if(lakonl(7:8).eq.
'LC')
then 314 elseif(lakonl(4:4).eq.
'6')
then 320 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 322 if(lakonl(4:4).eq.
'8')
then 323 if(lakonl(5:5).eq.
'R')
then 329 if(lakonl(6:6).eq.
'R')
then 335 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 337 if(lakonl(4:5).eq.
'10')
then 342 elseif((lakonl(4:5).eq.
'15').or.(lakonl(4:4).eq.
'6'))
then 352 konl(i)=kon(indexe+i)
354 xl(j,i)=co(j,konl(i))
370 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
371 & (stiffness.eq.1).and.(buckling.eq.0))
then 374 voldl(i2,i1)=vold(i2,konl(i1))
381 if((mass.eq.1).or.(buckling.eq.1).or.(coriolis.eq.1))
then 407 if(iperturb(2).eq.0)
then 410 voldl(i2,i1)=vold(i2,konl(i1))
416 if(lakonl(1:2).eq.
'ES')
then 417 if(lakonl(7:7).ne.
'C')
then 420 if(ithermal.eq.1)
then 421 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
422 t1l=(t1(konl(1))+t1(konl(2)))/2.d0
423 elseif(ithermal.ge.2)
then 424 t0l=(t0(konl(1))+t0(konl(2)))/2.d0
425 t1l=(vold(0,konl(1))+vold(0,konl(2)))/2.d0
429 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'1').or.
430 & (lakonl(7:7).eq.
'2').or.(mortar.eq.0))
then 432 & nelcon,ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,
433 & plicon,nplicon,npmat_,iperturb,
434 & springarea(1,konl(nope+1)),nmethod,mi,ne0,nstate_,
435 & xstateini,xstate,reltime,nasym,ielorien,orab,norien,
437 elseif(mortar.eq.1)
then 438 iloc=kon(indexe+nope+1)
439 jfaces=kon(indexe+nope+2)
440 igauss=kon(indexe+nope+1)
442 & ncmat_,ntmat_,nope,lakonl,t1l,kode,elconloc,plicon,
443 & nplicon,npmat_,iperturb,springarea(1,iloc),nmethod,
444 & mi,ne0,nstate_,xstateini,xstate,reltime,
445 & nasym,iloc,jfaces,igauss,pslavsurf,
446 & pmastsurf,clearini,kscale)
448 elseif(lakonl(1:4).eq.
'MASS')
then 454 sm(i1,i1)=rhcon(1,1,imat)
463 xmass=rhcon(1,1,imat)
466 ff(i1)=bodyfx(i1)*xmass
479 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
483 q(i1)=xl(i1,1)+voldl(i1,1)
488 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
493 ff(i1)=ff(i1)+(q(i1)-const*p2(i1))*om
506 if(intscheme.eq.0)
then 507 if(lakonl(4:5).eq.
'8R')
then 512 elseif(lakonl(4:7).eq.
'20RB')
then 513 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 517 weight=weight3d13(kk)
520 & kk,xi,et,ze,weight)
522 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
524 if(lakonl(7:8).ne.
'LC')
then 545 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
549 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
551 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
555 imat=ielmat(ilayer,nelem)
558 iorien=ielorien(ilayer,nelem)
563 if(nelcon(1,imat).lt.0)
then 569 elseif(lakonl(4:4).eq.
'2')
then 574 elseif(lakonl(4:5).eq.
'10')
then 579 elseif(lakonl(4:4).eq.
'4')
then 584 elseif(lakonl(4:5).eq.
'15')
then 585 if(lakonl(7:8).ne.
'LC')
then 597 weight=weight3d10(kl)
606 dlayer(i)=dlayer(i)+xlayer(ilayer-1,i)
610 ze=2.d0*(dlayer(ki)+(ze+1.d0)/2.d0*xlayer(ilayer,ki))/
612 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
616 imat=ielmat(ilayer,nelem)
619 iorien=ielorien(ilayer,nelem)
624 if(nelcon(1,imat).lt.0)
then 630 elseif(lakonl(4:4).eq.
'6')
then 637 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 642 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:4).eq.
'4'))
then 665 if(lakonl(1:5).eq.
'C3D8R')
then 667 elseif(lakonl(1:5).eq.
'C3D8I')
then 668 call shape8hu(xi,et,ze,xl,xsj,shp,iflag)
669 elseif(nope.eq.20)
then 671 if(lakonl(7:7).eq.
'A')
then 673 elseif((lakonl(7:7).eq.
'E').or.(lakonl(7:7).eq.
'S'))
then 676 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
678 elseif(nope.eq.8)
then 679 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
680 elseif(nope.eq.10)
then 682 elseif(nope.eq.4)
then 683 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
684 elseif(nope.eq.15)
then 685 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
687 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
692 if(xsj.lt.1.d-20)
then 693 write(*,*)
'*ERROR in e_c3d: nonpositive jacobian' 694 write(*,*)
' determinant in element',nelem
701 if(((iperturb(1).eq.1).or.(iperturb(2).eq.1)).and.
702 & (stiffness.eq.1).and.(buckling.eq.0))
then 719 if(ithermal.eq.1)
then 720 if(lakonl(4:5).eq.
'8 ')
then 722 t0l=t0l+t0(konl(i1))/8.d0
723 t1l=t1l+t1(konl(i1))/8.d0
725 elseif(lakonl(4:6).eq.
'20 ')
then 727 call lintemp(t0,t1,konl,nopered,kk,t0l,t1l)
728 elseif(lakonl(4:6).eq.
'10T')
then 733 t0l=t0l+shp(4,i1)*t0(konl(i1))
734 t1l=t1l+shp(4,i1)*t1(konl(i1))
737 elseif(ithermal.ge.2)
then 738 if(lakonl(4:5).eq.
'8 ')
then 740 t0l=t0l+t0(konl(i1))/8.d0
741 t1l=t1l+vold(0,konl(i1))/8.d0
743 elseif(lakonl(4:6).eq.
'20 ')
then 745 call lintemp_th(t0,vold,konl,nopered,kk,t0l,t1l,mi)
746 elseif(lakonl(4:6).eq.
'10T')
then 751 t0l=t0l+shp(4,i1)*t0(konl(i1))
752 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
766 coords(j)=coords(j)+shp(4,i1)*co(j,konl(i1))
782 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
783 & nelem,ithermal,alzero,mattyp,t0l,t1l,
784 & ihyper,istiff,elconloc,eth,kode,plicon,
785 & nplicon,plkcon,nplkcon,npmat_,
786 & plconloc,mi(1),dtime,kk,
794 al=un*um/(1.d0-2.d0*un)
796 elseif(mattyp.eq.2)
then 808 bodyf(ii)=bodyfx(ii)*rho
813 if(buckling.eq.1)
then 831 shpj(1,i1)=shp(1,i1)*xsjj
832 shpj(2,i1)=shp(2,i1)*xsjj
833 shpj(3,i1)=shp(3,i1)*xsjj
834 shpj(4,i1)=shp(4,i1)*xsj
840 if((stiffness.eq.1).or.(mass.eq.1).or.(buckling.eq.1).or.
841 & (coriolis.eq.1))
then 843 if(((iperturb(1).ne.1).and.(iperturb(2).ne.1)).or.
844 & (buckling.eq.1))
then 850 if((mass.eq.1).and.(iexpl.gt.1))
then 851 summass=summass+rho*xsj
865 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
874 if(buckling.eq.0)
then 878 s(ii1,jj1)=s(ii1,jj1)+(al*w(1,1)+
879 & um*(2.d0*w(1,1)+w(2,2)+w(3,3)))*weight
881 s(ii1,jj1+1)=s(ii1,jj1+1)+(al*w(1,2)+
883 s(ii1,jj1+2)=s(ii1,jj1+2)+(al*w(1,3)+
885 s(ii1+1,jj1)=s(ii1+1,jj1)+(al*w(2,1)+
887 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+(al*w(2,2)+
888 & um*(2.d0*w(2,2)+w(1,1)+w(3,3)))*weight
889 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+(al*w(2,3)+
891 s(ii1+2,jj1)=s(ii1+2,jj1)+(al*w(3,1)+
893 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+(al*w(3,2)+
895 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+(al*w(3,3)+
896 & um*(2.d0*w(3,3)+w(2,2)+w(1,1)))*weight
898 elseif(mattyp.eq.2)
then 900 s(ii1,jj1)=s(ii1,jj1)+(elas(1)*w(1,1)+
901 & elas(7)*w(2,2)+elas(8)*w(3,3))*weight
902 s(ii1,jj1+1)=s(ii1,jj1+1)+(elas(2)*w(1,2)+
903 & elas(7)*w(2,1))*weight
904 s(ii1,jj1+2)=s(ii1,jj1+2)+(elas(4)*w(1,3)+
905 & elas(8)*w(3,1))*weight
906 s(ii1+1,jj1)=s(ii1+1,jj1)+(elas(7)*w(1,2)+
907 & elas(2)*w(2,1))*weight
908 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+
910 & elas(3)*w(2,2)+elas(9)*w(3,3))*weight
911 s(ii1+1,jj1+2)=s(ii1+1,jj1+2)+
913 & elas(9)*w(3,2))*weight
914 s(ii1+2,jj1)=s(ii1+2,jj1)+
916 & elas(4)*w(3,1))*weight
917 s(ii1+2,jj1+1)=s(ii1+2,jj1+1)+
919 & elas(5)*w(3,2))*weight
920 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+
922 & elas(9)*w(2,2)+elas(6)*w(3,3))*weight
930 s(ii1+i1-1,jj1+j1-1)=
931 & s(ii1+i1-1,jj1+j1-1)
932 & +anisox(i1,k1,j1,l1)
944 sm(ii1,jj1)=sm(ii1,jj1)
945 & +rho*shpj(4,ii)*shp(4,jj)*weight
946 sm(ii1+1,jj1+1)=sm(ii1,jj1)
947 sm(ii1+2,jj1+2)=sm(ii1,jj1)
952 if(coriolis.eq.1)
then 954 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
955 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
956 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
957 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
958 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
959 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
960 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
968 & (s11b*w(1,1)+s12b*(w(1,2)+w(2,1))
969 & +s13b*(w(1,3)+w(3,1))+s22b*w(2,2)
970 & +s23b*(w(2,3)+w(3,2))+s33b*w(3,3))*weight
971 sm(ii1,jj1)=sm(ii1,jj1)-senergyb
972 sm(ii1+1,jj1+1)=sm(ii1+1,jj1+1)-senergyb
973 sm(ii1+2,jj1+2)=sm(ii1+2,jj1+2)-senergyb
992 vo(i1,j1)=vo(i1,j1)+shp(j1,k1)*voldl(i1,k1)
998 call wcoef(v,vo,al,um)
1005 if((mass.eq.1).and.(iexpl.gt.1))
then 1006 summass=summass+rho*xsj
1020 w(i1,j1)=shpj(i1,ii)*shpj(j1,jj)
1024 if(mattyp.eq.1)
then 1030 s(ii1+m2-1,jj1+m1-1)=
1031 & s(ii1+m2-1,jj1+m1-1)
1032 & +v(m4,m3,m2,m1)*w(m4,m3)*weight
1038 elseif(mattyp.eq.2)
then 1040 call orthonl(w,vo,elas,s,ii1,jj1,weight)
1044 call anisonl(w,vo,elas,s,ii1,jj1,weight)
1051 & (s11*w(1,1)+s12*(w(1,2)+w(2,1))
1052 & +s13*(w(1,3)+w(3,1))+s22*w(2,2)
1053 & +s23*(w(2,3)+w(3,2))+s33*w(3,3))*weight
1054 s(ii1,jj1)=s(ii1,jj1)+senergy
1055 s(ii1+1,jj1+1)=s(ii1+1,jj1+1)+senergy
1056 s(ii1+2,jj1+2)=s(ii1+2,jj1+2)+senergy
1060 if((mass.eq.1).and.(om.gt.0.d0))
then 1061 dmass=shpj(4,ii)*shp(4,jj)*weight*om
1063 s(ii1+m1-1,jj1+m1-1)=s(ii1+m1-1,jj1+m1-1)-
1066 s(ii1+m1-1,jj1+m2-1)=s(ii1+m1-1,jj1+m2-1)+
1067 & dmass*p2(m1)*p2(m2)
1075 sm(ii1,jj1)=sm(ii1,jj1)
1076 & +rho*shpj(4,ii)*shp(4,jj)*weight
1077 sm(ii1+1,jj1+1)=sm(ii1,jj1)
1078 sm(ii1+2,jj1+2)=sm(ii1,jj1)
1083 if(coriolis.eq.1)
then 1085 & rho*shpj(4,ii)*shp(4,jj)*weight*dsqrt(omx)
1086 sm(ii1,jj1+1)=sm(ii1,jj1+1)-p2(3)*dmass
1087 sm(ii1,jj1+2)=sm(ii1,jj1+2)+p2(2)*dmass
1088 sm(ii1+1,jj1)=sm(ii1+1,jj1)+p2(3)*dmass
1089 sm(ii1+1,jj1+2)=sm(ii1+1,jj1+2)-p2(1)*dmass
1090 sm(ii1+2,jj1)=sm(ii1+2,jj1)-p2(2)*dmass
1091 sm(ii1+2,jj1+1)=sm(ii1+2,jj1+1)+p2(1)*dmass
1103 if(lakonl(1:5).eq.
'C3D8R')
then 1114 call nident2(nelemload,nelem,nload,id)
1116 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1117 if((sideload(id)(1:2).ne.
'BX').and.
1118 & (sideload(id)(1:2).ne.
'BY').and.
1119 & (sideload(id)(1:2).ne.
'BZ'))
then 1123 if(sideload(id)(3:4).eq.
'NU')
then 1127 coords(j)=coords(j)+
1128 & shp(4,i1)*xl(j,i1)
1131 if(sideload(id)(1:2).eq.
'BX')
then 1133 elseif(sideload(id)(1:2).eq.
'BY')
then 1135 elseif(sideload(id)(1:2).eq.
'BZ')
then 1139 call dload(xload(1,id),istep,iinc,tvar,nelem,i,
1140 & layer,kspt,coords,jltyp,sideload(id),vold,co,
1141 & lakonl,konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,
1142 & ilmpc,iscale,veold,rho,amat,mi)
1143 if((nmethod.eq.1).and.(iscale.ne.0))
1144 & xload(1,id)=xloadold(1,id)+
1145 & (xload(1,id)-xloadold(1,id))*reltime
1149 if(sideload(id)(1:2).eq.
'BX')
1150 & ff(jj1)=ff(jj1)+xload(1,id)*shpj(4,jj)*weight
1151 if(sideload(id)(1:2).eq.
'BY')
1152 & ff(jj1+1)=ff(jj1+1)+xload(1,id)*shpj(4,jj)*weight
1153 if(sideload(id)(1:2).eq.
'BZ')
1154 & ff(jj1+2)=ff(jj1+2)+xload(1,id)*shpj(4,jj)*weight
1172 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1174 q(i1)=q(i1)+shp(4,j1)*xl(i1,j1)
1178 q(i1)=q(i1)+shp(4,j1)*
1179 & (xl(i1,j1)+voldl(i1,j1))
1185 const=q(1)*p2(1)+q(2)*p2(2)+q(3)*p2(3)
1190 bf(i1)=bodyf(i1)+(q(i1)-const*p2(i1))*om
1199 ff(jj1)=ff(jj1)+bf(1)*shpj(4,jj)*weight
1200 ff(jj1+1)=ff(jj1+1)+bf(2)*shpj(4,jj)*weight
1201 ff(jj1+2)=ff(jj1+2)+bf(3)*shpj(4,jj)*weight
1214 if((buckling.eq.0).and.(nload.ne.0))
then 1218 call nident2(nelemload,nelem,nload,id)
1220 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 1221 if(sideload(id)(1:1).ne.
'P')
then 1226 ig=ichar(sideload(id)(2:2))-48
1231 if(lakonl(4:4).eq.
'6')
then 1239 if(lakonl(4:5).eq.
'15')
then 1250 if((nope.eq.20).or.(nope.eq.8).or.
1251 & (nope.eq.11))
then 1254 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1257 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
1264 xl1(j,i)=co(j,konl(ifaceq(i,ig)))
1270 xl2(j,i)=co(j,konl(ifaceq(i,ig)))+
1271 & vold(j,konl(ifaceq(i,ig)))
1275 elseif((nope.eq.10).or.(nope.eq.4))
then 1277 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1280 xl2(j,i)=co(j,konl(ifacet(i,ig)))
1287 xl1(j,i)=co(j,konl(ifacet(i,ig)))
1293 xl2(j,i)=co(j,konl(ifacet(i,ig)))+
1294 & vold(j,konl(ifacet(i,ig)))
1300 if((iperturb(1).ne.1).and.(iperturb(2).ne.1))
then 1303 xl2(j,i)=co(j,konl(ifacew(i,ig)))
1310 xl1(j,i)=co(j,konl(ifacew(i,ig)))
1316 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
1317 & vold(j,konl(ifacew(i,ig)))
1324 if((lakonl(4:5).eq.
'8R').or.
1325 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 1329 elseif((lakonl(4:4).eq.
'8').or.
1330 & (lakonl(4:6).eq.
'20R').or.
1331 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 1335 elseif(lakonl(4:4).eq.
'2')
then 1339 elseif((lakonl(4:5).eq.
'10').or.
1340 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 1344 elseif((lakonl(4:4).eq.
'4').or.
1345 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 1353 call shape9q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1354 elseif(nopes.eq.8)
then 1355 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1356 elseif(nopes.eq.4)
then 1357 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
1358 elseif(nopes.eq.6)
then 1359 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1360 elseif(nopes.eq.7)
then 1361 call shape7tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1363 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
1369 if(sideload(id)(3:4).eq.
'NU')
then 1373 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1377 jltyp=ichar(sideload(id)(2:2))-48
1380 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1381 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1382 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1383 & iscale,veold,rho,amat,mi)
1384 if((nmethod.eq.1).and.(iscale.ne.0))
1385 & xload(1,id)=xloadold(1,id)+
1386 & (xload(1,id)-xloadold(1,id))*reltime
1387 elseif(sideload(id)(3:4).eq.
'SM')
then 1395 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1399 jltyp=ichar(sideload(id)(2:2))-48
1406 iface=10*nelem+jltyp
1408 & coords,iselect,six,iface,tieset,istartset,
1409 & iendset,ialset,ntie,entity)
1414 t(1)=stress(1)*xsj2(1)+stress(4)*xsj2(2)+
1416 t(2)=stress(4)*xsj2(1)+stress(2)*xsj2(2)+
1418 t(3)=stress(6)*xsj2(1)+stress(5)*xsj2(2)+
1429 if((nope.eq.20).or.(nope.eq.8).or.
1430 & (nope.eq.11))
then 1432 ipointer=(ifaceq(k,ig)-1)*3
1433 elseif((nope.eq.10).or.(nope.eq.4))
then 1434 ipointer=(ifacet(k,ig)-1)*3
1436 ipointer=(ifacew(k,ig)-1)*3
1438 ff(ipointer+1)=ff(ipointer+1)-shp2(4,k)*xload(1,id)
1440 ff(ipointer+2)=ff(ipointer+2)-shp2(4,k)*xload(1,id)
1442 ff(ipointer+3)=ff(ipointer+3)-shp2(4,k)*xload(1,id)
1452 elseif((mass.eq.1).and.
1453 & ((iperturb(1).eq.1).or.(iperturb(2).eq.1)))
then 1455 call shape9q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1456 elseif(nopes.eq.8)
then 1457 call shape8q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1458 elseif(nopes.eq.4)
then 1459 call shape4q(xi,et,xl1,xsj2,xs2,shp2,iflag)
1460 elseif(nopes.eq.6)
then 1461 call shape6tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1462 elseif(nopes.eq.7)
then 1463 call shape7tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1465 call shape3tri(xi,et,xl1,xsj2,xs2,shp2,iflag)
1471 if(sideload(id)(3:4).eq.
'NU')
then 1475 coords(k)=coords(k)+xl1(k,j)*shp2(4,j)
1479 jltyp=ichar(sideload(id)(2:2))-48
1482 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
1483 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
1484 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
1485 & iscale,veold,rho,amat,mi)
1486 if((nmethod.eq.1).and.(iscale.ne.0))
1487 & xload(1,id)=xloadold(1,id)+
1488 & (xload(1,id)-xloadold(1,id))*reltime
1489 elseif(sideload(id)(3:4).eq.
'SM')
then 1497 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
1501 jltyp=ichar(sideload(id)(2:2))-48
1508 iface=10*nelem+jltyp
1510 & coords,iselect,six,iface,tieset,istartset,
1511 & iendset,ialset,ntie,entity)
1531 xkl(k,l)=xkl(k,l)+shp2(l,ii)*xl2(k,ii)
1538 if((nope.eq.20).or.(nope.eq.8).or.
1539 & (nope.eq.11))
then 1541 ipointeri=(ifaceq(ii,ig)-1)*3
1542 elseif((nope.eq.10).or.(nope.eq.4))
then 1543 ipointeri=(ifacet(ii,ig)-1)*3
1545 ipointeri=(ifacew(ii,ig)-1)*3
1549 if((nope.eq.20).or.(nope.eq.8)
1550 & .or.(nope.eq.11))
then 1552 ipointerj=(ifaceq(jj,ig)-1)*3
1553 elseif((nope.eq.10).or.(nope.eq.4))
then 1554 ipointerj=(ifacet(jj,ig)-1)*3
1556 ipointerj=(ifacew(jj,ig)-1)*3
1562 if(sideload(id)(3:4).ne.
'SM')
then 1569 if(k.lt.l) eknlsign=-1.d0
1570 elseif(k*l.eq.3)
then 1572 if(k.gt.l) eknlsign=-1.d0
1575 if(k.lt.l) eknlsign=-1.d0
1577 term=weight*xload(1,id)*shp2(4,ii)*
1578 & eknlsign*(xsj2(1)*
1579 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1580 & shp2(2,jj))+xsj2(2)*
1581 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1582 & shp2(3,jj))+xsj2(3)*
1583 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1585 s(ipointeri+k,ipointerj+l)=
1586 & s(ipointeri+k,ipointerj+l)+term/2.d0
1587 s(ipointerj+l,ipointeri+k)=
1588 & s(ipointerj+l,ipointeri+k)+term/2.d0
1599 if(k.lt.l) eknlsign=-1.d0
1600 elseif(k*l.eq.3)
then 1602 if(k.gt.l) eknlsign=-1.d0
1605 if(k.lt.l) eknlsign=-1.d0
1607 term=-weight*stre(kk,k)*shp2(4,ii)*
1608 & eknlsign*(xsj2(1)*
1609 & (xkl(n,2)*shp2(3,jj)-xkl(n,3)*
1610 & shp2(2,jj))+xsj2(2)*
1611 & (xkl(n,3)*shp2(1,jj)-xkl(n,1)*
1612 & shp2(3,jj))+xsj2(3)*
1613 & (xkl(n,1)*shp2(2,jj)-xkl(n,2)*
1615 s(ipointeri+kk,ipointerj+l)=
1616 & s(ipointeri+kk,ipointerj+l)+term/2.d0
1617 s(ipointerj+l,ipointeri+kk)=
1618 & s(ipointerj+l,ipointeri+kk)+term/2.d0
1636 if(((lakonl(4:5).eq.
'8 ').or.
1637 & ((lakonl(4:6).eq.
'20R').and.(lakonl(7:8).ne.
'BR'))).and.
1638 & ((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
1639 & (lakonl(7:7).eq.
'E')))
then 1649 sax(i,j)=s(k,l)*iperm(i)*iperm(j)/(k*l)
1654 s(i,j)=s(i,j)+sax(i,j)
1658 if((nload.ne.0).or.(nbody.ne.0))
then 1661 ffax(i)=ff(k)*iperm(i)/k
1669 summass=2.d0*summass
1679 sax(i,j)=sm(k,l)*iperm(i)*iperm(j)/(k*l)
1684 sm(i,j)=sm(i,j)+sax(i,j)
1690 if((mass.eq.1).and.(iexpl.gt.1))
then 1700 do i=3*nopev+1,3*nope,3
1708 elseif(nope.eq.10)
then 1710 elseif(nope.eq.15)
then 1714 if((nope.eq.20).or.(nope.eq.10).or.
1715 & (nope.eq.15))
then 1716 factore=summass*alp/(1.d0+alp)/sume
1717 factorm=summass/(1.d0+alp)/summ
1719 factore=summass/sume
1723 sm(i,i)=sm(i,i)*factore
1727 do i=3*nopev+1,3*nope,3
1728 sm(i,i)=sm(i,i)*factorm
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