42 real*8 shp(7,7),xs(3,7),xsi(2,3),xl(3,7),sh(3),xsj(3),a,b,
43 & bxi,bet,bxixi,bxiet,betet,xi,et
45 intent(in) xi,et,xl,iflag
47 intent(out) shp,xs,xsj
57 shp(4,1)=a*(2.d0*a-1.d0)+3.d0*b
58 shp(4,2)=xi*(2.d0*xi-1.d0)+3.d0*b
59 shp(4,3)=et*(2.d0*et-1.d0)+3.d0*b
60 shp(4,4)=4.d0*xi*a-12.d0*b
61 shp(4,5)=4.d0*xi*et-12.d0*b
62 shp(4,6)=4.d0*et*a-12.d0*b
75 shp(1,1)=4.d0*(xi+et)-3.d0+3.d0*bxi
76 shp(1,2)=4.d0*xi-1.d0+3.d0*bxi
77 shp(1,3)=0.d0+3.d0*bxi
78 shp(1,4)=4.d0*(a-xi)-12.d0*bxi
79 shp(1,5)=4.d0*et-12.d0*bxi
80 shp(1,6)=-4.d0*et-12.d0*bxi
85 shp(2,1)=4.d0*(xi+et)-3.d0+3.d0*bet
86 shp(2,2)=0.d0+3.d0*bet
87 shp(2,3)=4.d0*et-1.d0+3.d0*bet
88 shp(2,4)=-4.d0*xi-12.d0*bet
89 shp(2,5)=4.d0*xi-12.d0*bet
90 shp(2,6)=4.d0*(a-et)-12.d0*bet
100 xs(i,j)=xs(i,j)+xl(i,k)*shp(j,k)
107 xsj(1)=xs(2,1)*xs(3,2)-xs(3,1)*xs(2,2)
108 xsj(2)=xs(1,2)*xs(3,1)-xs(3,2)*xs(1,1)
109 xsj(3)=xs(1,1)*xs(2,2)-xs(2,1)*xs(1,2)
116 if(dabs(xsj(3)).gt.1.d-10)
then 117 xsi(1,1)=xs(2,2)/xsj(3)
118 xsi(2,2)=xs(1,1)/xsj(3)
119 xsi(1,2)=-xs(1,2)/xsj(3)
120 xsi(2,1)=-xs(2,1)/xsj(3)
121 if(dabs(xsj(2)).gt.1.d-10)
then 122 xsi(2,3)=xs(1,1)/(-xsj(2))
123 xsi(1,3)=-xs(1,2)/(-xsj(2))
124 elseif(dabs(xsj(1)).gt.1.d-10)
then 125 xsi(2,3)=xs(2,1)/xsj(1)
126 xsi(1,3)=-xs(2,2)/xsj(1)
131 elseif(dabs(xsj(2)).gt.1.d-10)
then 132 xsi(1,1)=xs(3,2)/(-xsj(2))
133 xsi(2,3)=xs(1,1)/(-xsj(2))
134 xsi(1,3)=-xs(1,2)/(-xsj(2))
135 xsi(2,1)=-xs(3,1)/(-xsj(2))
136 if(dabs(xsj(1)).gt.1.d-10)
then 137 xsi(1,2)=xs(3,2)/xsj(1)
138 xsi(2,2)=-xs(3,1)/xsj(1)
144 xsi(1,2)=xs(3,2)/xsj(1)
145 xsi(2,3)=xs(2,1)/xsj(1)
146 xsi(1,3)=-xs(2,2)/xsj(1)
147 xsi(2,2)=-xs(3,1)/xsj(1)
156 sh(j)=shp(1,k)*xsi(1,j)+shp(2,k)*xsi(2,j)
163 elseif(iflag.eq.4)
then 171 shp(5,1)=4.d0+3.d0*bxixi
172 shp(5,2)=4.d0+3.d0*bxixi
174 shp(5,4)=-8.d0-12.d0*bxixi
175 shp(5,5)=-12.d0*bxixi
176 shp(5,6)=-12.d0*bxixi
181 shp(6,1)=4.d0+3.d0*bxiet
184 shp(6,4)=-4.d0-12.d0*bxiet
185 shp(6,5)=4.d0-12.d0*bxiet
186 shp(6,6)=-4.d0-12.d0*bxiet
191 shp(7,1)=4.d0+3.d0*betet
193 shp(7,3)=4.d0+3.d0*betet
196 shp(7,6)=-8.d0-12.d0*betet
206 xs(i,j)=xs(i,j)+xl(i,k)*shp(j,k)