32 character*81 objectset(4,*)
35 integer idesvar,j,k,kk,l,m,m1,n,istartdesi(*),
36 & ielem,ipoface(*),nodface(5,*),ndesi,nodedesi(*),nope,
37 & ialdesi(*),nopes,indexe,iaux,ifour,kflag,indexel,
38 & mint3d,mint2d,ipkon(*),konl(26),iflag,ifaceq(8,6),
39 & ifacet(6,4),ifacew1(4,5),ifacew2(8,5),kon(*),
40 & nodes1(8),ifacel,iobject,nodes2(8),indexs,nk,
41 & ithree,i,node,ifacq(2,3,20),ifact(2,3,10),ifacw(2,3,15),
42 & nopedesi,nnodes,nodedesiinv(*),nobject,noregion,iactnode
44 real*8 xi,et,weight,xl(3,9),xs(3,2),xsj(3),shp(7,9),
45 & co(3,*),xsjj,weightformgrad(ndesi),dgdx(ndesi,nobject),
46 & dgdxglob(2,nk,nobject)
57 data ifaceq /4,3,2,1,11,10,9,12,
58 & 5,6,7,8,13,14,15,16,
60 & 2,3,7,6,10,19,14,18,
61 & 3,4,8,7,11,20,15,19,
62 & 4,1,5,8,12,17,16,20/
66 data ifacet /1,3,2,7,6,5,
73 data ifacew1 /1,3,2,0,
81 data ifacew2 /1,3,2,9,8,7,0,0,
96 data ifacq /1,4,3,1,6,2,
117 data ifact /1,1,2,1,4,1,
128 data ifacw /1,1,3,1,5,2,
155 node=nodedesi(idesvar)
159 do j=istartdesi(idesvar),istartdesi(idesvar+1)-1
168 if(lakon(ielem)(4:5).eq.
'8R')
then 173 elseif(lakon(ielem)(4:4).eq.
'8')
then 178 elseif(lakon(ielem)(4:5).eq.
'20')
then 183 elseif(lakon(ielem)(4:5).eq.
'10')
then 188 elseif(lakon(ielem)(4:4).eq.
'4')
then 193 elseif(lakon(ielem)(4:4).eq.
'6')
then 198 elseif(lakon(ielem)(4:5).eq.
'15')
then 206 if(noregion.eq.1) nopedesi=0
212 konl(l)=kon(indexe+l)
216 if(kon(indexe+i).eq.node)
exit 225 if((nope.eq.20).or.(nope.eq.8))
then 229 nodes1(l)=konl(ifaceq(l,k))
232 call isortii(nodes1,iaux,ifour,kflag)
236 elseif((nope.eq.10).or.(nope.eq.4))
then 240 nodes1(l)=konl(ifacet(l,k))
243 call isortii(nodes1,iaux,ithree,kflag)
248 elseif(nope.eq.15)
then 255 nodes1(l)=konl(ifacew2(l,k))
258 call isortii(nodes1,iaux,ithree,kflag)
264 nodes1(l)=konl(ifacew2(l,k))
267 call isortii(nodes1,iaux,ithree,kflag)
276 nodes1(l)=konl(ifacew1(l,k))
279 call isortii(nodes1,iaux,ithree,kflag)
285 nodes1(l)=konl(ifacew1(l,k))
288 call isortii(nodes1,iaux,ithree,kflag)
295 indexs=ipoface(nodes1(1))
297 if(indexs.eq.0) cycle loop1
298 if((nodface(1,indexs).eq.nodes1(2)).and.
299 & (nodface(2,indexs).eq.nodes1(3)))
then 305 if(nodedesiinv(nodes1(n)).eq.1)
then 312 if(nnodes.ge.nopedesi)
then 313 if((nope.eq.20).or.(nope.eq.8))
then 316 ifacel=ifaceq(l,nodface(4,indexs))
317 xl(n,l)=co(n,konl(ifacel))
320 elseif((nope.eq.10).or.(nope.eq.4))
then 323 ifacel=ifacet(l,nodface(4,indexs))
324 xl(n,l)=co(n,konl(ifacel))
327 elseif(nope.eq.15)
then 330 ifacel=ifacew2(l,nodface(4,indexs))
331 xl(n,l)=co(n,konl(ifacel))
334 elseif(nope.eq.6)
then 337 ifacel=ifacew1(l,nodface(4,indexs))
338 xl(n,l)=co(n,konl(ifacel))
346 if(lakon(ielem)(4:5).eq.
'20')
then 352 elseif(lakon(ielem)(4:5).eq.
'10')
then 358 elseif(lakon(ielem)(4:4).eq.
'4')
then 364 elseif(lakon(ielem)(4:5).eq.
'15')
then 378 elseif(lakon(ielem)(4:4).eq.
'8')
then 384 elseif(lakon(ielem)(4:4).eq.
'6')
then 402 xsjj=dsqrt(xsj(1)**2+xsj(2)**2+
407 weightformgrad(idesvar)=weightformgrad
408 & (idesvar)+weight*shp(4,m1)*xsjj
413 indexs=nodface(5,indexs)
426 if(objectset(1,iobject)(1:9).eq.
'THICKNESS') cycle
427 if(weightformgrad(idesvar).gt.0.d0)
then 428 dgdx(idesvar,iobject)=dgdx(idesvar,iobject)
429 & /weightformgrad(idesvar)
430 iactnode=nodedesi(idesvar)
431 dgdxglob(1,iactnode,iobject)=dgdx(idesvar,iobject)
433 iactnode=nodedesi(idesvar)
434 dgdxglob(1,iactnode,iobject)=dgdx(idesvar,iobject)
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 isortii(ix, iy, n, kflag)
Definition: isortii.f:6
subroutine shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20