33 integer i,j,k,iflag,ifacet(7,4),konl(14)
35 real*8 shp(4,14),xs(3,3),xsi(3,3),xl(3,14),sh(3),xi,et,ze,xsj,a
37 intent(in) xi,et,ze,xl,iflag,konl
43 ifacet=reshape((/1,3,2,7,6,5,11,
46 & 1,4,3,8,10,7,14/),(/7,4/))
53 shp(4, 1)=(2.d0*a-1.d0)*a
54 shp(4, 2)=xi*(2.d0*xi-1.d0)
55 shp(4, 3)=et*(2.d0*et-1.d0)
56 shp(4, 4)=ze*(2.d0*ze-1.d0)
67 if(konl(10+i).eq.konl(10))
then 74 shp(4,11)=27.d0*a*xi*et
76 shp(4,12)=27.d0*a*xi*ze
78 shp(4,13)=27.d0*xi*et*ze
80 shp(4,14)=27.d0*a*et*ze
83 shp(4,ifacet(j,i))=shp(4,ifacet(j,i))+shp(4,20+i)/9.d0
86 shp(4,ifacet(j,i))=shp(4,ifacet(j,i))-
87 & 4.d0*shp(4,20+i)/9.d0
97 shp(1, 2)=4.d0*xi-1.d0
100 shp(1, 5)=4.d0*(a-xi)
110 if(konl(10+i).eq.konl(10))
then 117 shp(1,11)=27.d0*(a-xi)*et
119 shp(1,12)=27.d0*(a-xi)*ze
121 shp(1,13)=27.d0*et*ze
123 shp(1,14)=-27.d0*et*ze
126 shp(1,ifacet(j,i))=shp(1,ifacet(j,i))+shp(1,20+i)/9.d0
129 shp(1,ifacet(j,i))=shp(1,ifacet(j,i))-
130 & 4.d0*shp(1,20+i)/9.d0
137 shp(2, 1)=1.d0-4.d0*a
139 shp(2, 3)=4.d0*et-1.d0
143 shp(2, 7)=4.d0*(a-et)
151 if(konl(10+i).eq.konl(10))
then 158 shp(2,11)=27.d0*(a-et)*xi
160 shp(2,12)=-27.d0*xi*ze
162 shp(2,13)=27.d0*xi*ze
164 shp(2,14)=27.d0*(a-et)*ze
167 shp(2,ifacet(j,i))=shp(2,ifacet(j,i))+shp(2,20+i)/9.d0
170 shp(2,ifacet(j,i))=shp(2,ifacet(j,i))-
171 & 4.d0*shp(2,20+i)/9.d0
178 shp(3, 1)=1.d0-4.d0*a
181 shp(3, 4)=4.d0*ze-1.d0
185 shp(3, 8)=4.d0*(a-ze)
192 if(konl(10+i).eq.konl(10))
then 199 shp(3,11)=-27.d0*xi*et
201 shp(3,12)=27.d0*(a-ze)*xi
203 shp(3,13)=27.d0*xi*et
205 shp(3,14)=27.d0*(a-ze)*et
208 shp(3,ifacet(j,i))=shp(3,ifacet(j,i))+shp(3,20+i)/9.d0
211 shp(3,ifacet(j,i))=shp(3,ifacet(j,i))-
212 & 4.d0*shp(3,20+i)/9.d0
224 xs(i,j)=xs(i,j)+xl(i,k)*shp(j,k)
231 xsj=xs(1,1)*(xs(2,2)*xs(3,3)-xs(2,3)*xs(3,2))
232 & -xs(1,2)*(xs(2,1)*xs(3,3)-xs(2,3)*xs(3,1))
233 & +xs(1,3)*(xs(2,1)*xs(3,2)-xs(2,2)*xs(3,1))
235 if(iflag.eq.2)
return 240 xsi(1,1)=(xs(2,2)*xs(3,3)-xs(3,2)*xs(2,3))/xsj
241 xsi(1,2)=(xs(1,3)*xs(3,2)-xs(1,2)*xs(3,3))/xsj
242 xsi(1,3)=(xs(1,2)*xs(2,3)-xs(2,2)*xs(1,3))/xsj
243 xsi(2,1)=(xs(2,3)*xs(3,1)-xs(2,1)*xs(3,3))/xsj
244 xsi(2,2)=(xs(1,1)*xs(3,3)-xs(3,1)*xs(1,3))/xsj
245 xsi(2,3)=(xs(1,3)*xs(2,1)-xs(1,1)*xs(2,3))/xsj
246 xsi(3,1)=(xs(2,1)*xs(3,2)-xs(3,1)*xs(2,2))/xsj
247 xsi(3,2)=(xs(1,2)*xs(3,1)-xs(1,1)*xs(3,2))/xsj
248 xsi(3,3)=(xs(1,1)*xs(2,2)-xs(2,1)*xs(1,2))/xsj
254 sh(j)=shp(1,k)*xsi(1,j)+shp(2,k)*xsi(2,j)+shp(3,k)*xsi(3,j)