30 . X1, X2, X3, X4, X5, X6, X7, X8,
31 . Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8,
32 . Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8,
33 . E1X, E2X, E3X, E1Y, E2Y, E3Y, E1Z, E2Z, E3Z )
37#include "implicit_f.inc"
42 . x1, x2, x3, x4, x5, x6, x7, x8,
43 . y1, y2, y3, y4, y5, y6, y7, y8,
44 . z1, z2, z3, z4, z5, z6, z7, z8,
96 aa = sqrt(rx*rx + ry*ry + rz*rz)
97 if ( aa/=zero) aa = one / aa
101 aa = sqrt(sx*sx + sy*sy + sz*sz)
102 if ( aa/=zero) aa = one / aa
106 aa = sqrt(tx*tx + ty*ty + tz*tz)
107 if ( aa/=zero) aa = one / aa
118 e1x = sy * tz - sz * ty + rx
119 e1y = sz * tx - sx * tz + ry
120 e1z = sx * ty - sy * tx + rz
122 e2x = ty * rz - tz * ry + sx
123 e2y = tz * rx - tx * rz + sy
126 e3x = ry * sz - rz * sy + tx
127 e3y = rz * sx - rx * sz + ty
128 e3z = rx * sy - ry * sx + tz
130 bb = sqrt(e1x*e1x + e1y*e1y + e1z*e1z)
131 if ( bb/=zero) bb = one / bb
136 bb = sqrt(e2x*e2x + e2y*e2y + e2z*e2z)
137 if ( bb/=zero) bb = one / bb
142 bb = sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
143 if ( bb/=zero) bb = one / bb
148 IF (n<niter)
GOTO 111
155 e3x = e1y * sz - e1z * sy
156 e3y = e1z * sx - e1x * sz
157 e3z = e1x * sy - e1y * sx
159 aa = sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
160 if ( aa/=zero) aa = one / aa
165 e2x = e3y * e1z - e3z * e1y
166 e2y = e3z * e1x - e3x * e1z
167 e2z = e3x * e1y - e3y * e1x
subroutine sortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)