28 SUBROUTINE pri324(SIG,EPSTOT,EPS,VEC)
32#include "implicit_f.inc"
37 . sig(*), epstot(*), eps(*), vec(*)
43 . cs(6), str(3), a(3,3), v(3,3), b(3,3), xmag(3), pr, aa, bb
44 . cc, angp, dd, ftpi, ttpi, strmax, tol1, tol2, xmax, vmag
45 . s21, s31, s12, s22, s32, s13, s23, s33, a11, a12, a13, a21,
46 . a22, a23, a31, a32, a33
48 DATA ftpi,ttpi / 4.188790205, 2.094395102 /
60 pr = -(cs(1)+cs(2)+cs(3)) * third
65 aa = cs(4)**2 + cs(5)**2 + cs(6)**2 - cs(1)*cs(2) - cs(2)*cs(3)
70 bb = cs(1)*cs(5)**2 + cs(2)*cs(6)**2 + cs(3)*cs(4)**2
71 & - cs(1)*cs(2)*cs(3) - two*cs(4)*cs(5)*cs(6)
73 cc=-sqrt(twenty7/aa)*bb*half/aa
79 str(2)=dd*cos(angp+ftpi)
80 str(3)=dd*cos(angp+ttpi)
84 strmax=
max(abs(str(1)),abs(str(3)))
86 tol1=
max(em20,sixem4*strmax**2)
100 b(1,l) = a(2,l)*a(3,iperm(l))-a(3,l)*a(2,iperm(l))
101 b(2,l) = a(3,l)*a(1,iperm(l))-a(1,l)*a(3,iperm(l))
102 b(3,l) = a(1,l)*a(2,iperm(l))-a(2,l)*a(1,iperm(l))
103 xmag(l)= sqrt(b(1,l)**2+b(2,l)**2+b(3,l)**2)
109 IF (xmag(l) > xmax)
THEN
115 IF (xmax > tol1)
THEN
116 v(1,1)=b(1,lmax)/xmax
117 v(2,1)=b(2,lmax)/xmax
118 v(3,1)=b(3,lmax)/xmax
130 b(1,l)=a(2,l)*v(3,1)-a(3,l)*v(2,1)
131 b(2,l)=a(3,l)*v(1,1)-a(1,l)*v(3,1)
132 b(3,l)=a(1,l)*v(2,1)-a(2,l)*v(1,1)
133 xmag(l)=sqrt(b(1,l)**2+b(2,l)**2+b(3,l)**2)
137 IF(xmag(l) > xmax)
THEN
143 IF (xmax > tol2)
THEN
144 v(1,3)= b(1,lmax)/xmax
145 v(2,3)= b(2,lmax)/xmax
146 v(3,3)= b(3,lmax)/xmax
147 v(1,2)= v(2,3)*v(3,1)-v(2,1)*v(3,3)
148 v(2,2)= v(3,3)*v(1,1)-v(3,1)*v(1,3)
149 v(3,2)= v(1,3)*v(2,1)-v(1,1)*v(2,3)
150 vmag = sqrt(v(1,2)**2 + v(2,2)**2 + v(3,2)**2)
155 vmag = sqrt(v(1,1)**2 + v(2,1)**2 + v(3,1)**2)
156 IF (vmag > tol2/strmax)
THEN
171 xmag(l) = sqrt(a(1,l)**2 + a(2,l)**2)
175 IF(xmag(l) > xmax)
THEN
181 IF(
max(abs(a(3,1)),abs(a(3,2)),abs(a(3,3))) < tol2)
THEN
185 v(1,2) = -a(2,lmax)/xmax
186 v(2,2) = a(1,lmax)/xmax
189 ELSEIF(xmax > tol2)
THEN
190 v(1,1) = -a(2,lmax)/xmax
191 v(2,1) = a(1,lmax)/xmax
193 v(1,2) = -a(3,lmax)*v(2,1)
194 v(2,2) = a(3,lmax)*v(1,1)
195 v(3,2) = a(1,lmax)*v(2,1)-a(2,lmax)*v(1,1)
196 vmag = sqrt(v(1,2)**2 + v(2,2)**2 + v(3,2)**2)
227 5 s33=s11*s22-s21*s12
229 a11=sig(1)*s11+sig(4)*s21+sig(6)*s31
230 a12=sig(1)*s12+sig(4)*s22+sig(6)*s32
231 a13=sig(1)*s13+sig(4)*s23+sig(6)*s33
232 a21=sig(4)*s11+sig(2)*s21+sig(5)*s31
233 a22=sig(4)*s12+sig(2)*s22+sig(5)*s32
234 a23=sig(4)*s13+sig(2)*s23+sig(5)*s33
235 a31=sig(6)*s11+sig(5)*s21+sig(3)*s31
236 a32=sig(6)*s12+sig(5)*s22+sig(3)*s32
237 a33=sig(6)*s13+sig(5)*s23+sig(3)*s33
238 sig(4)=s11*a12+s21*a22+s31*a32
239 sig(5)=s12*a13+s22*a23+s32*a33
240 sig(6)=s11*a13+s21*a23+s31*a33
245 a11=eps(1)*s11+eps(4)*s21+eps(6)*s31
246 a12=eps(1)*s12+eps(4)*s22+eps(6)*s32
247 a13=eps(1)*s13+eps(4)*s23+eps(6)*s33
248 a21=eps(4)*s11+eps(2)*s21+eps(5)*s31
249 a22=eps(4)*s12+eps(2)*s22+eps(5)*s32
250 a23=eps(4)*s13+eps(2)*s23+eps(5)*s33
251 a31=eps(6)*s11+eps(5)*s21+eps(3)*s31
252 a32=eps(6)*s12+eps(5)*s22+eps(3)*s32
253 a33=eps(6)*s13+eps(5)*s23+eps(3)*s33
254 eps(1)=s11*a11+s21*a21+s31*a31
255 eps(2)=s12*a12+s22*a22+s32*a32
256 eps(3)=s13*a13+s23*a23+s33*a33
257 epstot(4)=half*epstot(4)
258 epstot(5)=half*epstot(5)
259 epstot(6)=half*epstot(6)
260 a11=epstot(1)*s11+epstot(4)*s21+epstot(6)*s31
261 a12=epstot(1)*s12+epstot(4)*s22+epstot(6)*s32
262 a13=epstot(1)*s13+epstot(4)*s23+epstot(6)*s33
263 a21=epstot(4)*s11+epstot(2)*s21+epstot(5)*s31
264 a22=epstot(4)*s12+epstot(2)*s22+epstot(5)*s32
265 a23=epstot(4)*s13+epstot(2)*s23+epstot(5)*s33
266 a31=epstot(6)*s11+epstot(5)*s21+epstot(3)*s31
267 a32=epstot(6)*s12+epstot(5)*s22+epstot(3)*s32
268 a33=epstot(6)*s13+epstot(5)*s23+epstot(3)*s33
269 epstot(1)=s11*a11+s21*a21+s31*a31
270 epstot(2)=s12*a12+s22*a22+s32*a32
271 epstot(3)=s13*a13+s23*a23+s33*a33