55 real*8 col(3,3),straight(16),p12(3),p23(3),p31(3),dd,scal1,
56 & scal2,xp12(3),xp23(3),xp31(3),xq12(3),xq23(3),xq31(3),
57 & xnor(3,3),dxp,dxq,edgenor(3,3),dd12,dd23,dd31
62 p12(i)=col(i,2)-col(i,1)
63 p23(i)=col(i,3)-col(i,2)
64 p31(i)=col(i,1)-col(i,3)
66 dd12=p12(1)*p12(1)+p12(2)*p12(2)+p12(3)*p12(3)
67 dd23=p23(1)*p23(1)+p23(2)*p23(2)+p23(3)*p23(3)
68 dd31=p31(1)*p31(1)+p31(2)*p31(2)+p31(3)*p31(3)
73 scal1=(xnor(1,2)*p23(1)+xnor(2,2)*p23(2)+xnor(3,2)*p23(3))/dd23
74 scal2=(xnor(1,3)*p23(1)+xnor(2,3)*p23(2)+xnor(3,3)*p23(3))/dd23
76 xp23(i)=xnor(i,2)-scal1*p23(i)
77 xq23(i)=xnor(i,3)-scal2*p23(i)
79 dxp=dsqrt(xp23(1)*xp23(1)+xp23(2)*xp23(2)+xp23(3)*xp23(3))
80 dxq=dsqrt(xq23(1)*xq23(1)+xq23(2)*xq23(2)+xq23(3)*xq23(3))
86 scal1=(xnor(1,3)*p31(1)+xnor(2,3)*p31(2)+xnor(3,3)*p31(3))/dd31
87 scal2=(xnor(1,1)*p31(1)+xnor(2,1)*p31(2)+xnor(3,1)*p31(3))/dd31
89 xp31(i)=xnor(i,3)-scal1*p31(i)
90 xq31(i)=xnor(i,1)-scal2*p31(i)
92 dxp=dsqrt(xp31(1)*xp31(1)+xp31(2)*xp31(2)+xp31(3)*xp31(3))
93 dxq=dsqrt(xq31(1)*xq31(1)+xq31(2)*xq31(2)+xq31(3)*xq31(3))
99 scal1=(xnor(1,1)*p12(1)+xnor(2,1)*p12(2)+xnor(3,1)*p12(3))/dd12
100 scal2=(xnor(1,2)*p12(1)+xnor(2,2)*p12(2)+xnor(3,2)*p12(3))/dd12
102 xp12(i)=xnor(i,1)-scal1*p12(i)
103 xq12(i)=xnor(i,2)-scal2*p12(i)
105 dxp=dsqrt(xp12(1)*xp12(1)+xp12(2)*xp12(2)+xp12(3)*xp12(3))
106 dxq=dsqrt(xq12(1)*xq12(1)+xq12(2)*xq12(2)+xq12(3)*xq12(3))
113 edgenor(i,1)=xp23(i)+xq23(i)
114 edgenor(i,2)=xp31(i)+xq31(i)
115 edgenor(i,3)=xp12(i)+xq12(i)
120 dd=dsqrt(edgenor(1,1)*edgenor(1,1)+edgenor(2,1)*edgenor(2,1)
121 & +edgenor(3,1)*edgenor(3,1))
123 edgenor(i,1)=edgenor(i,1)/dd
125 dd=dsqrt(edgenor(1,2)*edgenor(1,2)+edgenor(2,2)*edgenor(2,2)
126 & +edgenor(3,2)*edgenor(3,2))
128 edgenor(i,2)=edgenor(i,2)/dd
130 dd=dsqrt(edgenor(1,3)*edgenor(1,3)+edgenor(2,3)*edgenor(2,3)
131 & +edgenor(3,3)*edgenor(3,3))
133 edgenor(i,3)=edgenor(i,3)/dd
138 straight(13)=p12(2)*p23(3)-p12(3)*p23(2)
139 straight(14)=p12(3)*p23(1)-p12(1)*p23(3)
140 straight(15)=p12(1)*p23(2)-p12(2)*p23(1)
141 dd=dsqrt(straight(13)*straight(13)+straight(14)*straight(14)+
142 & straight(15)*straight(15))
144 straight(i)=straight(i)/dd
150 straight(9)=p12(2)*edgenor(3,3)-p12(3)*edgenor(2,3)
151 straight(10)=p12(3)*edgenor(1,3)-p12(1)*edgenor(3,3)
152 straight(11)=p12(1)*edgenor(2,3)-p12(2)*edgenor(1,3)
153 dd=dsqrt(straight(9)*straight(9)+straight(10)*straight(10)+
154 & straight(11)*straight(11))
156 straight(i)=straight(i)/dd
167 straight(1)=p23(2)*edgenor(3,1)-p23(3)*edgenor(2,1)
168 straight(2)=p23(3)*edgenor(1,1)-p23(1)*edgenor(3,1)
169 straight(3)=p23(1)*edgenor(2,1)-p23(2)*edgenor(1,1)
170 dd=dsqrt(straight(1)*straight(1)+straight(2)*straight(2)+
171 & straight(3)*straight(3))
173 straight(i)=straight(i)/dd
184 straight(5)=p31(2)*edgenor(3,2)-p31(3)*edgenor(2,2)
185 straight(6)=p31(3)*edgenor(1,2)-p31(1)*edgenor(3,2)
186 straight(7)=p31(1)*edgenor(2,2)-p31(2)*edgenor(1,2)
187 dd=dsqrt(straight(5)*straight(5)+straight(6)*straight(6)+
188 & straight(7)*straight(7))
190 straight(i)=straight(i)/dd
200 straight(12)=-straight(9)*col(1,1)-straight(10)*col(2,1)-
201 & straight(11)*col(3,1)
202 straight(4)=-straight(1)*col(1,2)-straight(2)*col(2,2)-
203 & straight(3)*col(3,2)
204 straight(8)=-straight(5)*col(1,3)-straight(6)*col(2,3)-
205 & straight(7)*col(3,3)
206 straight(16)=-straight(13)*col(1,1)-straight(14)*col(2,1)-
207 & straight(15)*col(3,1)