30 character*8 lakon(*),lakonl
31 character*80 amat,matname(*)
33 integer kon(*),konl(26),nea,neb,mi(*),mint2d,nopes,nelcon(2,*),
34 & ielmat(mi(3),*),ielorien(mi(3),*),ntmat_,ipkon(*),iflag,null,
35 & mt,i,ii,j,k,jj,kk,indexe,nope,norien,ihyper,iactive,
36 & imat,mint3d,iorien,ilayer,nlayer,ki,kl,istartdesi(*),
37 & ielprop(*),mortar,idesvar,node,ndesi,nodedesi(*),
38 & nobject,iobject,ialdesi(*),ij
40 real*8 co(3,*),shp(4,26),xl(3,26),vl(0:mi(2),26),
41 & prop(*),rhcon(0:1,ntmat_,*),xs2(3,7),
thickness,rho,xl2(3,8),
42 & xsj2(3),shp2(7,8),xi,et,ze,
43 & xsj,weight,gs(8,4),a,tlayer(4),dlayer(4),xlayer(mi(3),4),
44 & thicke(mi(3),*),distmin,xmassel,g0(*),xmass(*),xdesi(3,*),
73 if(ipkon(i).lt.0) cycle
77 if(lakonl(1:1).eq.
'F') cycle
78 if(lakonl(1:7).eq.
'DCOUP3D') cycle
80 if(lakonl(7:8).ne.
'LC')
then 90 if(nelcon(1,imat).lt.0)
then 103 if(ielmat(k,i).ne.0)
then 111 if(lakonl(4:5).eq.
'20')
then 121 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
139 elseif(lakonl(4:5).eq.
'15')
then 149 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
173 if(lakonl(1:5).eq.
'C3D8I')
then 175 elseif(lakonl(4:5).eq.
'20')
then 178 elseif(lakonl(4:4).eq.
'2')
then 180 elseif(lakonl(4:4).eq.
'8')
then 182 elseif(lakonl(4:5).eq.
'10')
then 184 elseif(lakonl(4:5).eq.
'14')
then 186 elseif(lakonl(4:4).eq.
'4')
then 188 elseif(lakonl(4:5).eq.
'15')
then 190 elseif(lakonl(4:4).eq.
'6')
then 192 elseif((lakonl(1:1).eq.
'E').and.(lakonl(7:7).ne.
'F'))
then 197 if(lakonl(7:7).eq.
'C')
then 206 elseif(mortar.eq.0)
then 210 nope=ichar(lakonl(8:8))-47
211 konl(nope+1)=kon(indexe+nope+1)
217 nope=ichar(lakonl(8:8))-47
225 if(idesvar.gt.0)
then 228 if(node.eq.nodedesi(idesvar))
then 235 if(lakonl(4:5).eq.
'8R')
then 237 elseif(lakonl(4:7).eq.
'20RB')
then 238 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 242 & null,xi,et,ze,weight)
244 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'26R').or.
245 & (lakonl(4:6).eq.
'20R'))
then 246 if(lakonl(7:8).eq.
'LC')
then 251 elseif(lakonl(4:4).eq.
'2')
then 253 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:5).eq.
'14'))
then 255 elseif(lakonl(4:4).eq.
'4')
then 257 elseif(lakonl(4:5).eq.
'15')
then 258 if(lakonl(7:8).eq.
'LC')
then 263 elseif(lakonl(4:4).eq.
'6')
then 265 elseif(lakonl(1:1).eq.
'E')
then 270 konl(j)=kon(indexe+j)
272 xl(k,j)=co(k,konl(j))
280 if(idesvar.gt.0)
then 282 xl(j,iactive)=xl(j,iactive)+xdesi(j,idesvar)
287 if(lakonl(4:5).eq.
'8R')
then 292 elseif(lakonl(4:7).eq.
'20RB')
then 293 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 297 weight=weight3d13(jj)
300 & jj,xi,et,ze,weight)
302 elseif((lakonl(4:4).eq.
'8').or.
303 & (lakonl(4:6).eq.
'20R').or.(lakonl(4:6).eq.
'26R'))
305 if(lakonl(7:8).ne.
'LC')
then 326 dlayer(k)=dlayer(k)+xlayer(ilayer-1,k)
330 ze=2.d0*(dlayer(ki)+(ze+1.d0)/
331 & 2.d0*xlayer(ilayer,ki))/tlayer(ki)-1.d0
332 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
336 imat=ielmat(ilayer,i)
339 iorien=ielorien(ilayer,i)
344 if(nelcon(1,imat).lt.0)
then 350 elseif(lakonl(4:4).eq.
'2')
then 355 elseif((lakonl(4:5).eq.
'10').or.(lakonl(4:5).eq.
'14'))
361 elseif(lakonl(4:4).eq.
'4')
then 366 elseif(lakonl(4:5).eq.
'15')
then 367 if(lakonl(7:8).ne.
'LC')
then 379 weight=weight3d10(kl)
388 dlayer(k)=dlayer(k)+xlayer(ilayer-1,k)
392 ze=2.d0*(dlayer(ki)+(ze+1.d0)/
393 & 2.d0*xlayer(ilayer,ki))/tlayer(ki)-1.d0
394 weight=weight*xlayer(ilayer,ki)/tlayer(ki)
398 imat=ielmat(ilayer,i)
401 iorien=ielorien(ilayer,i)
406 if(nelcon(1,imat).lt.0)
then 412 elseif(lakonl(4:4).eq.
'6')
then 420 if(lakonl(1:5).eq.
'C3D8R')
then 422 elseif(lakonl(1:5).eq.
'C3D8I')
then 423 call shape8hu(xi,et,ze,xl,xsj,shp,iflag)
424 elseif(nope.eq.20)
then 426 if(lakonl(7:7).eq.
'A')
then 428 elseif((lakonl(7:7).eq.
'E').or.
429 & (lakonl(7:7).eq.
'S'))
then 432 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
434 elseif(nope.eq.26)
then 435 call shape26h(xi,et,ze,xl,xsj,shp,iflag,konl)
436 elseif(nope.eq.8)
then 437 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
438 elseif(nope.eq.10)
then 440 elseif(nope.eq.14)
then 441 call shape14tet(xi,et,ze,xl,xsj,shp,iflag,konl)
442 elseif(nope.eq.4)
then 443 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
444 elseif(nope.eq.15)
then 445 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
447 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
453 xmassel=xmassel+weight*xsj*rho
460 if(idesvar.eq.0)
then 462 g0(iobject)=g0(iobject)+xmassel
464 dgdx(idesvar,iobject)=dgdx(idesvar,iobject)+
465 & (xmassel-xmass(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 shape8q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape8q.f:20
subroutine shape14tet(xi, et, ze, xl, xsj, shp, iflag, konl)
Definition: shape14tet.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 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 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 shape26h(xi, et, ze, xl, xsj, shp, iflag, konl)
Definition: shape26h.f:20
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