27       integer istartset(*),iendset(*),ialset(*),imast,j,ifacem,
    28      &  nelemm,jfacem,indexe,ipkon(*),kon(*),nopem,node,
    29      &  ifaceq(8,6),ifacet(6,4),ifacew1(4,5),ifacew2(8,5),
    30      &  nmastnode,id,indexnode(9),konl(26),imastnode(*)
    32       real*8 xmastnor(3,*),xsj2(3),shp2(7,9),xs2(3,2),xi,et,dd,
    33      &  xquad(2,9),xtri(2,7),xl2m(3,9),co(3,*)
    37       data ifaceq /4,3,2,1,11,10,9,12,
    38      &            5,6,7,8,13,14,15,16,
    40      &            2,3,7,6,10,19,14,18,
    41      &            3,4,8,7,11,20,15,19,
    42      &            4,1,5,8,12,17,16,20/
    46       data ifacet /1,3,2,7,6,5,
    53       data ifacew1 /1,3,2,0,
    61       data ifacew2 /1,3,2,9,8,7,0,0,
    69       data xquad /-1.d0,-1.d0,
    85      &           0.333333333333333d0,0.333333333333333d0/
    94       do j=istartset(imast),iendset(imast)
   100          nelemm=int(ifacem/10)
   101          jfacem=ifacem - nelemm*10
   104          if(lakon(nelemm)(4:5).eq.
'20') 
then   106          elseif(lakon(nelemm)(4:4).eq.
'8') 
then   108          elseif(lakon(nelemm)(4:5).eq.
'10') 
then   110          elseif(lakon(nelemm)(4:4).eq.
'4') 
then   114          if(lakon(nelemm)(4:4).eq.
'6') 
then   121          if(lakon(nelemm)(4:5).eq.
'15') 
then   130             if((lakon(nelemm)(4:4).eq.
'2').or.
   131      &           (lakon(nelemm)(4:4).eq.
'8')) 
then   132                node=kon(indexe+ifaceq(l,jfacem))
   133             elseif((lakon(nelemm)(4:4).eq.
'4').or.
   134      &                    (lakon(nelemm)(4:5).eq.
'10')) 
then   135                node=kon(indexe+ifacet(l,jfacem))
   136             elseif(lakon(nelemm)(4:4).eq.
'6') 
then   137                node=kon(indexe+ifacew1(l,jfacem))
   138             elseif(lakon(nelemm)(4:5).eq.
'15') 
then   139                node=kon(indexe+ifacew2(l,jfacem))
   141             call nident(imastnode,node,
   145                if(imastnode(id).eq.node) 
then   150             nmastnode=nmastnode+1
   151             do k=nmastnode,id+2,-1
   152                imastnode(k)=imastnode(k-1)
   161       do j=istartset(imast),iendset(imast)
   164          nelemm=int(ifacem/10)
   165          jfacem=ifacem - nelemm*10
   171          if(lakon(nelemm)(4:5).eq.
'8R') 
then   174          elseif(lakon(nelemm)(4:4).eq.
'8') 
then   177          elseif(lakon(nelemm)(4:5).eq.
'20') 
then   180          elseif(lakon(nelemm)(4:5).eq.
'10') 
then   183          elseif(lakon(nelemm)(4:4).eq.
'4') 
then   189          elseif(lakon(nelemm)(4:4).eq.
'6') 
then   196          elseif(lakon(nelemm)(4:5).eq.
'15') 
then   209             konl(k)=kon(ipkon(nelemm)+k)
   212          if((nope.eq.20).or.(nope.eq.8)) 
then   215                   xl2m(k,m)=co(k,konl(ifaceq(m,jfacem)))
   218          elseif((nope.eq.10).or.(nope.eq.4)) 
   222                   xl2m(k,m)=co(k,konl(ifacet(m,jfacem)))
   225          elseif(nope.eq.15) 
then   228                   xl2m(k,m)=co(k,konl(ifacew2(m,jfacem)))
   234                   xl2m(k,m)=co(k,konl(ifacew1(m,jfacem)))
   245                call shape8q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
   246                dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
   253                   node=konl(ifaceq(m,jfacem))
   254                elseif(nope.eq.15) 
then   255                   node=konl(ifacew2(m,jfacem))
   258                call nident(imastnode,node,
   262                xmastnor(1,index1)=xmastnor(1,index1)
   264                xmastnor(2,index1)=xmastnor(2,index1)
   266                xmastnor(3,index1)=xmastnor(3,index1)
   269          elseif(nopem.eq.4) 
then   273                call shape4q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
   274                dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2) 
   281                   node=konl(ifaceq(m,jfacem))
   282                elseif(nope.eq.6) 
then   283                   node=konl(ifacew1(m,jfacem))
   286                call nident(imastnode,node,
   291                xmastnor(1,index1)=xmastnor(1,index1)
   293                xmastnor(2,index1)=xmastnor(2,index1)
   295                xmastnor(3,index1)=xmastnor(3,index1)
   298          elseif(nopem.eq.6) 
then   302                call shape6tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
   303                dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2) 
   310                   node=konl(ifacet(m,jfacem))
   311                elseif(nope.eq.15) 
then   312                   node=konl(ifacew2(m,jfacem))
   315                call nident(imastnode,node,
   319                xmastnor(1,index1)=xmastnor(1,index1)
   321                xmastnor(2,index1)=xmastnor(2,index1)
   323                xmastnor(3,index1)=xmastnor(3,index1)
   330                call shape3tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
   331                dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2) 
   338                   node=konl(ifacew1(m,jfacem))
   339                elseif(nope.eq.4) 
then   340                   node=konl(ifacet(m,jfacem))
   343                call nident(imastnode,node,
   347                xmastnor(1,id)=xmastnor(1,index1)
   349                xmastnor(2,id)=xmastnor(2,index1)
   351                xmastnor(3,id)=xmastnor(3,index1)
   360          dd=dsqrt(xmastnor(1,l)**2+xmastnor(2,l)**2+
   363             xmastnor(m,l)=xmastnor(m,l)/dd
 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 shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
 
subroutine nident(x, px, n, id)
Definition: nident.f:26
 
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20