c *********************************************************************** subroutine relativeorientation(n,i1,i2,cos1,cos2) c calculate the relative orientation through cos1, cos2 implicit double precision(a-h, o-z) parameter(maxa=500,maxn=maxa*3) double precision d(3),d1(3),d2(3),lengthd1,lengthd2 common/matrix/x(maxa,3),bangle(maxa),rz(maxa) common/matrix2/ r(maxa,maxa) common/bf_coords/f(maxa,3),v(maxa,3),u(maxa,3) do j=1,3 d(j)=x(i2,j)-x(i1,j) enddo du1=0 du2=0 cos1=0 cos2=0 lengthd1=0 lengthd2=0 do j=1,3 du1=d(j)*u(i1,j)+du1 du2=d(j)*u(i2,j)+du2 enddo do j=1,3 d1(j)=d(j)-du1*u(i1,j) d2(j)=d(j)-du2*u(i2,j) lengthd1=lengthd1+d1(j)*d1(j) lengthd2=lengthd2+d2(j)*d2(j) enddo do j=1,3 cos1=cos1+f(i1,j)*d(j) cos2=cos2+f(i2,j)*d(j) enddo cos1=cos1/dsqrt(lengthd1) cos2=cos2/dsqrt(lengthd2) return end