41       real*8 shp(7,4),xs(3,7),xsi(2,3),xl(3,8),sh(3),xsj(3),xi,et,
    44       intent(in) xi,et,xl,iflag
    46       intent(out) shp,xs,xsj
    60       shp(4,3)=xip*(etp)/4.d0
    61       shp(4,4)=xim*(etp)/4.d0
    88             xs(i,j)=xs(i,j)+xl(i,k)*shp(j,k)
    95       xsj(1)=xs(2,1)*xs(3,2)-xs(3,1)*xs(2,2)
    96       xsj(2)=xs(1,2)*xs(3,1)-xs(3,2)*xs(1,1)
    97       xsj(3)=xs(1,1)*xs(2,2)-xs(2,1)*xs(1,2)
   110          if(dabs(xsj(3)).gt.1.d-10) 
then   111             xsi(1,1)=xs(2,2)/xsj(3)
   112             xsi(2,2)=xs(1,1)/xsj(3)
   113             xsi(1,2)=-xs(1,2)/xsj(3)
   114             xsi(2,1)=-xs(2,1)/xsj(3)
   115             if(dabs(xsj(2)).gt.1.d-10) 
then   116                xsi(2,3)=xs(1,1)/(-xsj(2))
   117                xsi(1,3)=-xs(1,2)/(-xsj(2))
   118             elseif(dabs(xsj(1)).gt.1.d-10) 
then   119                xsi(2,3)=xs(2,1)/xsj(1)
   120                xsi(1,3)=-xs(2,2)/xsj(1)
   125          elseif(dabs(xsj(2)).gt.1.d-10) 
then   126             xsi(1,1)=xs(3,2)/(-xsj(2))
   127             xsi(2,3)=xs(1,1)/(-xsj(2))
   128             xsi(1,3)=-xs(1,2)/(-xsj(2))
   129             xsi(2,1)=-xs(3,1)/(-xsj(2))
   130             if(dabs(xsj(1)).gt.1.d-10) 
then   131                xsi(1,2)=xs(3,2)/xsj(1)
   132                xsi(2,2)=-xs(3,1)/xsj(1)
   138             xsi(1,2)=xs(3,2)/xsj(1)
   139             xsi(2,3)=xs(2,1)/xsj(1)
   140             xsi(1,3)=-xs(2,2)/xsj(1)
   141             xsi(2,2)=-xs(3,1)/xsj(1)
   150                sh(j)=shp(1,k)*xsi(1,j)+shp(2,k)*xsi(2,j)
   157       elseif(iflag.eq.4) 
then   190                xs(i,6)=xs(i,6)+xl(i,k)*shp(6,k)