29 1 SAV, INVJ, XD1, XD2,
39#include "implicit_f.inc"
56 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
57 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
58 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
59 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
60 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
61 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
62 . sav(nel,21),invj(mvsiz,3,3), r(3,3,mvsiz)
68 DOUBLE PRECISION DX_DR,DX_DS,DX_DT,DY_DR,DY_DS,DY_DT,DZ_DR,DZ_DS,DZ_DT
69 DOUBLE PRECISION FMAT(3,3),UM(3,3),IC,I2C,I3C,IU,I2U,I3U
70 DOUBLE PRECISION C11,C21,C31,C12,C22,C32,C13,C23,C33,DETJ0,DETM1
71 DOUBLE PRECISION CC11,CC21,CC31,CC12,CC22,CC32,CC13,CC23,CC33
72 DOUBLE PRECISION A,B,ZZ,A1,A2,A3,A4,X0(8),Y0(8),Z0(8)
73 DOUBLE PRECISION MILLE24
102 dx_dr = (x0(3)+x0(4)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(5)+x0(6))
103 dy_dr = (y0(3)+y0(4)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(5)+y0(6))
104 dz_dr = (z0(3)+z0(4)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(5)+z0(6))
108 dx_ds = (x0(5)+x0(6)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(3)+x0(4))
109 dy_ds = (y0(5)+y0(6)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(3)+y0(4))
110 dz_ds = (z0(5)+z0(6)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(3)+z0(4))
114 dx_dt = (x0(2)+x0(3)+x0(6)+x0(7))-(x0(1)+x0(4)+x0(5)+x0(8))
115 dy_dt = (y0(2)+y0(3)+y0(6)+y0(7))-(y0(1)+y0(4)+y0(5)+y0(8))
116 dz_dt = (z0(2)+z0(3)+z0(6)+z0(7))-(z0(1)+z0(4)+z0(5)+z0(8))
120 detj0 =(dx_dr*(dy_ds*dz_dt-dz_ds*dy_dt)
121 . -dx_ds*(dy_dr*dz_dt-dy_dt*dz_dr)
122 . +dx_dt*(dy_dr*dz_ds-dy_ds*dz_dr))
125 invj(i,1,1) = (dy_ds*dz_dt-dz_ds*dy_dt)*detm1
126 invj(i,2,1) = (dz_dr*dy_dt-dy_dr*dz_dt)*detm1
127 invj(i,3,1) = (dy_dr*dz_ds-dy_ds*dz_dr)*detm1
128 invj(i,1,2) = (dx_dt*dz_ds-dx_ds*dz_dt)*detm1
129 invj(i,2,2) = (dx_dr*dz_dt-dx_dt
130 invj(i,3,2) = (dx_ds*dz_dr-dx_dr*dz_ds)*detm1
131 invj(i,1,3) = (dx_ds*dy_dt-dx_dt*dy_ds)*detm1
132 invj(i,2,3) = (dx_dt*dy_dr-dx_dr*dy_dt)*detm1
133 invj(i,3,3) = (dx_dr*dy_ds-dx_ds*dy_dr)*detm1
135 dx_dr = (xd3(i)+xd4(i)+xd7(i)+xd8(i))-(xd1(i)+xd2(i)+xd5(i)+xd6(i))
136 dy_dr = (yd3(i)+yd4(i)+yd7(i)+yd8(i))-(yd1(i)+yd2(i)+yd5(i)+yd6(i))
137 dz_dr = (zd3(i)+zd4(i)+zd7(i)+zd8(i))-(zd1(i)+zd2(i)+zd5(i)+zd6(i))
141 dx_ds = (xd5(i)+xd6(i)+xd7(i)+xd8(i))-(xd1(i)+xd2(i)+xd3(i)+xd4(i))
142 dy_ds = (yd5(i)+yd6(i)+yd7(i)+yd8(i))-(yd1(i)+yd2(i)+yd3(i)+yd4(i))
143 dz_ds = (zd5(i)+zd6(i)+zd7(i)+zd8(i))-(zd1(i)+zd2(i)+zd3(i)+zd4(i))
147 dx_dt = (xd2(i)+xd3(i)+xd6(i)+xd7(i))-(xd1(i)+xd4(i)+xd5(i)+xd8(i))
148 dy_dt = (yd2(i)+yd3(i)+yd6(i)+yd7(i))-(yd1(i)+yd4(i)+yd5(i)+yd8(i))
149 dz_dt = (zd2(i)+zd3(i)+zd6(i)+zd7(i))-(zd1(i)+zd4(i)+zd5(i)+zd8(i))
154 fmat(1,1) = (dx_dr*invj(i,1,1)+dx_ds*invj(i,2,1)+dx_dt*invj(i,3,1))
155 fmat(2,1) = (dy_dr*invj(i,1,1)+dy_ds*invj(i,2,1)+dy_dt*invj(i,3,1))
156 fmat(3,1) = (dz_dr*invj(i,1,1)+dz_ds*invj(i,2,1)+dz_dt*invj(i,3,1))
157 fmat(1,2) = (dx_dr*invj(i,1,2)+dx_ds*invj(i,2,2)+dx_dt*invj(i,3,2))
158 fmat(2,2) = (dy_dr*invj(i,1,2)+dy_ds*invj(i,2,2)+dy_dt*invj(i,3,2))
159 fmat(3,2) = (dz_dr*invj(i,1,2)+dz_ds*invj(i,2,2)+dz_dt*invj(i,3,2))
160 fmat(1,3) = (dx_dr*invj(i,1,3)+dx_ds*invj(i,2,3)+dx_dt*invj(i,3,3))
161 fmat(2,3) = (dy_dr*invj(i,1,3)+dy_ds*invj(i,2,3)+dy_dt*invj(i,3,3))
162 fmat(3,3) = (dz_dr*invj(i,1,3)+dz_ds*invj(i,2,3)+dz_dt*invj(i,3,3))
164 c11 = fmat(1,1)*fmat(1,1)+fmat(2,1)*fmat(2,1)+fmat(3,1)*fmat(3,1)
165 c21 = fmat(1,2)*fmat(1,1)+fmat(2,2)*fmat(2,1)+fmat(3,2)*fmat(3,1)
166 c31 = fmat(1,3)*fmat(1,1)+fmat(2,3)*fmat(2,1)+fmat(3,3)*fmat(3,1)
167 c12 = fmat(1,1)*fmat(1,2)+fmat(2,1)*fmat(2,2)+fmat(3,1)*fmat(3,2)
168 c22 = fmat(1,2)*fmat(1,2)+fmat(2,2)*fmat(2,2)+fmat(3,2)*fmat(3,2)
169 c32 = fmat(1,3)*fmat(1,2)+fmat(2,3)*fmat(2,2)+fmat(3,3)*fmat(3,2)
170 c13 = fmat(1,1)*fmat(1,3)+fmat(2,1)*fmat(2,3)+fmat(3,1)*fmat(3,3)
171 c23 = fmat(1,2)*fmat(1,3)+fmat(2,2)*fmat(2,3)+fmat(3,2)*fmat(3,3)
172 c33 = fmat(1,3)*fmat(1,3)+fmat(2,3)*fmat(2,3)+fmat(3,3)*fmat(3,3)
174 cc11 = c11*c11+c12*c21+c13*c31
175 cc21 = c21*c11+c22*c21+c23*c31
176 cc31 = c31*c11+c32*c21+c33*c31
177 cc12 = c11*c12+c12*c22+c13*c32
178 cc22 = c21*c12+c22*c22+c23*c32
179 cc32 = c31*c12+c32*c22+c33*c32
180 cc13 = c11*c13+c12*c23+c13*c33
181 cc23 = c21*c13+c22*c23+c23*c33
182 cc33 = c31*c13+c32*c23+c33*c33
185 i2c = c11*c22+c22*c33+c11*c33-c21*c12-c13*c31-c23*c32
186 i3c = c11*c22*c33+c12*c23*c31+c13*c21*c32
187 . -(c13*c22*c31+c12*c21*c33+c11*c23*c32)
189 a = (two*ic*ic*ic-nine*ic*i2c+twenty7*i3c)*thirty2/twenty7
190 b = (four*(i2c*i2c*i2c+ic*ic*ic*i3c)-ic*ic*i2c*i2c-eighteen*ic*i2c*i3c
191 . +twenty7*i3c*i3c)*mille24/twenty7
196 zz = -two_third*ic+sign(abs(a1)**third,a1)+sign(abs(a2)**third,a2)
199 iu = sqrt(ic+two*sqrt(i2c))
202 iu = half*(a+sqrt(two*ic-zz+sixteen*sqrt(i3c)/a))
205 i2u = half*(iu*iu-ic)
210 a3 = i2u*i3u*b+iu*iu*(i2u*i2c+i3c)
211 a4 = one/(i3u*i3u*b+iu*iu*(iu*i3c+i3u*i2c))
212 um(1,1) = a4*(a1*cc11-a2*c11+a3)
213 um(2,1) = a4*(a1*cc21-a2*c21)
214 um(3,1) = a4*(a1*cc31-a2*c31)
215 um(1,2) = a4*(a1*cc12-a2*c12)
216 um(2,2) = a4*(a1*cc22-a2*c22+a3)
217 um(3,2) = a4*(a1*cc32-a2*c32)
218 um(1,3) = a4*(a1*cc13-a2*c13)
219 um(2,3) = a4*(a1*cc23-a2*c23)
220 um(3,3) = a4*(a1*cc33-a2*c33+a3)
222 r(1,1,i) = fmat(1,1)*um(1,1)+fmat(1,2)*um(2,1)+fmat(1,3)*um(3,1)
223 r(2,1,i) = fmat(2,1)*um(1,1)+fmat(2,2)*um(2,1)+fmat(2,3)*um(3,1)
224 r(3,1,i) = fmat(3,1)*um(1,1)+fmat(3,2)*um(2,1)+fmat(3,3)*um(3,1)
225 r(1,2,i) = fmat(1,1)*um(1,2)+fmat(1,2)*um(2,2)+fmat(1,3)*um(3,2)
226 r(2,2,i) = fmat(2,1)*um(1,2)+fmat(2,2)*um(2,2)+fmat(2,3)*um(3,2)
227 r(3,2,i) = fmat(3,1)*um(1,2)+fmat(3,2)*um(2,2)+fmat(3,3)*um(3,2)
228 r(1,3,i) = fmat(1,1)*um(1,3)+fmat(1,2)*um(2,3)+fmat(1,3)*um(3,3)
229 r(2,3,i) = fmat(2,1)*um(1,3)+fmat(2,2)*um(2,3)+fmat(2,3)*um(3,3)
230 r(3,3,i) = fmat(3,1)*um(1,3)+fmat(3,2)*um(2,3)+fmat(3,3)*um(3,3)