C AXE OF ROTATION BEING AWNG THE STAR VECTOR AND ITERATE CALL DROTR(ATT, DROLL, STAR) GO TO 10 END C C---DROTR & DROTX SUPPLIED BY A SCHUETZ 14/10/86 ----------------------- C SUBROUTINE DROTR(XYZ,PHI,A) C CP ROTATE AROUND ARBITRARY AXIS BY ANGLE PHI C CP PROJ-EXO,SUBJ=ATT,UTIL=MULT,AUTH=J.FERTIG,3/10/60 C C CALLING SEQUENCE C Cl INPUT XYZ R8 (3,3) XYZ(1,1),XYZ(2,I),XYZ(3,1) FOR X-AXIS CI XYZ(1,2),XYZ(2,2),XYZ(3,2) FOR Y-AXIS CI XYZ(1,3),XYZ(2,3),XYZ(3,3) FOR Z-AXIS CI PHI R8 (1) ROTATION ANGLE (RAD) CI A R8 (3) AXIS OF ROTATION IN S/C SYSTEM CI OF COORDINATES CO OUTPUT XYZ R8 (3,3) X,Y,Z-AXES AFTER ROTATION C C IMPLICIT REAL*8 (A-H,O-Z) DIMENSION XYZ(3,3),A(3),W(3,3),XYZN(3,3) C=DCOS(PHI) S=DSIH(PHI) W(1,1)=C+(1.-C)*A(1)*A(1) W(2,1)= (1.-C)*A(2)*A(1)+S*A(3) W(3,1)= (1.-C)*A(3)*A(l)-S*A(2) W(1,2)= (1.-C)*A(1)*A(2)-S*A(3) W(2,2)=C+(1.-C)*A(2)*A(2) W(3,2)= (1.-C)*A(3)-A(2)+S*A(1) W(1,3)= (1.-C)*A(1)*A(3)+S*A(2) W(2,3)= (1.-C)*A(2)*A(3)-S*A(1) W(3,3)=C+(1.-C)*A(3)*A(3) CALL MUL1(XYZ,W,XYZN) ! REPLACES DMAMA3 CALL DO 20 I=1,3 DO 10 J=1,3 XYZ(I,J)=XYZN(l,J) 10 CONTINUE 20 CONTINUE RETURN END C C C SUBROUTINE DROTX(A,FI,I) CP ROTATES A SET OF AXES X,Y,Z AROUND ONE OF THEN BY AN ANGLE FI CC PROJ=GEN,SUBJ=NUM,UTIL=MULT,AUTH=FRAITURE/SAB CI A R8 3*3 A(1,1),A(2,1),A(3,1) FOR X-AXIS CI A(1,2).A(2,2),A(3,2) FOR Y-AXIS CI A(1,3),A(2.3).A(3,3) FOR Z-AXIS CI FI R8 3 ROTATION ANGLE IN RADIANS CI I I4 ROTATION AXIS NUMBER (1 FOR AXIS OX) CO A R8 3*3 X,Y,Z-AXES AFTER ROTATION C---------------------------------------------------------------- IMPLICIT REAL*8 (A-H,O-Z) DIMENSION A(3,J),J(4) SAVE J DATA J/2,3,1,2/ C --------------------------------------------------------------- K=J(I) L=J(I+1) CSF=DCOS(FI) SNF=DSIN(FI) DO 10 N=1,3 U=A(N,K)*CSF+A(M,L)*SNF A(N,L)=-A(N,K)*SNF+A(N,L)*CSF A(N,K)=U 10 CONTINUE RETURN END