35 real*8 shp(4,10),xs(3,3),xsi(3,3),xl(3,10),sh(3),xi,et,ze,xsj,a
37 intent(in) xi,et,ze,xl,iflag
46 shp(4, 1)=(2.d0*a-1.d0)*a
47 shp(4, 2)=xi*(2.d0*xi-1.d0)
48 shp(4, 3)=et*(2.d0*et-1.d0)
49 shp(4, 4)=ze*(2.d0*ze-1.d0)
62 shp(1, 2)=4.d0*xi-1.d0
76 shp(2, 3)=4.d0*et-1.d0
90 shp(3, 4)=4.d0*ze-1.d0
105 xs(i,j)=xs(i,j)+xl(i,k)*shp(j,k)
112 xsj=xs(1,1)*(xs(2,2)*xs(3,3)-xs(2,3)*xs(3,2))
113 & -xs(1,2)*(xs(2,1)*xs(3,3)-xs(2,3)*xs(3,1))
114 & +xs(1,3)*(xs(2,1)*xs(3,2)-xs(2,2)*xs(3,1))
116 if(iflag.eq.2)
return 121 xsi(1,1)=(xs(2,2)*xs(3,3)-xs(3,2)*xs(2,3))/xsj
122 xsi(1,2)=(xs(1,3)*xs(3,2)-xs(1,2)*xs(3,3))/xsj
123 xsi(1,3)=(xs(1,2)*xs(2,3)-xs(2,2)*xs(1,3))/xsj
124 xsi(2,1)=(xs(2,3)*xs(3,1)-xs(2,1)*xs(3,3))/xsj
125 xsi(2,2)=(xs(1,1)*xs(3,3)-xs(3,1)*xs(1,3))/xsj
126 xsi(2,3)=(xs(1,3)*xs(2,1)-xs(1,1)*xs(2,3))/xsj
127 xsi(3,1)=(xs(2,1)*xs(3,2)-xs(3,1)*xs(2,2))/xsj
128 xsi(3,2)=(xs(1,2)*xs(3,1)-xs(1,1)*xs(3,2))/xsj
129 xsi(3,3)=(xs(1,1)*xs(2,2)-xs(2,1)*xs(1,2))/xsj
135 sh(j)=shp(1,k)*xsi(1,j)+shp(2,k)*xsi(2,j)+shp(3,k)*xsi(3,j)