SUBROUTINE ATTFSS(KAT,SR %JDE, ISTR2, DEBLAIR,Y, FMTBUF, DAY) C ON ENTRY: C MAT - ATTITUDE MATRIX READ FROM AUXILIARY DATA C SRA - R.A. OF GUIDE STAR FROM AUXILIARY DATA C SDE - DEC OF GUIDE STAR FROM AUXILIARY DATA C ISRT2 = 0 IF 2 STARS WERE USED FOR ATT RECONSTRUCTION (FROM AUX DATA) C DEBLUR = .TRUE. IF USER NEEDS CORRECTION FOR CURRENT VALUES OF A511-5 C Y = ARRAY GIVING SPACECRAFT POSH W.R.T. EARTH (FROM ORBIT DATA) C FMTBUF = RECORD OF HOUSEKEEPING DATA AT THE TIME OF REQD ATTITUDE C DAY - ESOC MJD (SEE FOT HANDBOOK SECT 2, P5) AT TIME OF REQD ATTITUDE C C ON RETURN: C MAT = ATTITUDE MATRIX MODIFIED To CORRECT FOR THE FSS INDUCED DRIFT C REAL*8 MAT(9),AMAT(9),AU,DIST REAL*8 SRA,SDE,SUN(3),CON,Y(6) REAL*8 DAY INTEGER*2 FMTBUF(984) LOGICAL*2 DEBLUR CON=0.01745329252DO ! 2PI/360 AU=1.495979D8 ! 1 AU IN KH IF(ISTR2.NE.O)THEN CALL P1950(DAY,AMAT) ! GET PRECH MATRIX FOR DATE CALL TRANSP(AMAT) CALL SUNDR(DAY,SUN) ! GET POSH OF SUN FROM EARTH CALL MUL(AKAT,SUN) ! PRECESS TO OBS DATE DOLOOP I=1, 3 SUN(I)=SUN(I)*AU-Y(I) ! GET POSH OF SUN FROM S/C ENDL00P DIST= OSQRT(SUN(I)*SUN(I)+SUN(2)*SUN(2)+SUN(3)*SUN(3)) DOLOOP I=1,3 SUN(I)=SUN(I)/DIST ENDLOOP SRA=SRA*CON SDE=SDE*CON ENDIF CALL FSSCO(ISTR2,FMTBUF,MAT,SUN,SRA,SDE,DEBLUR,MAT,IRET) IF(IRET.EQ.1)WRITE(1,12) 12 FORMAT(' FSSCO: NO CONVERGENCE IN 5 ITERATIONS!') RETURN END C CC C SUBROUTINE TRANSP(A), 3-D MATRIX TRANSPOSE REAL*8 A(9),S S=A(4) A(4)=A(2) A(2)=S S=A(7) A(7)=A(3) A(3)=S S=A(6) A(6)=A(S) A(8)=S RETURN END C C====== SUNDR AND P1950 SUPPLIED BY A SCHUETZ 14/10/86 FOR SUN POSN AT TIME==== C=========================================================OF OBS=============== C SUBROUTINE SUNDR(DAY,X) C DUBLE PRECISION VERSION C GIVES SUN DIRECTION IN THE MEAN EQUATORIAL SYSTEM C OF DATE. REF: THE ASTRONOMICAL EPHEMERIS 1976, P-543 C THE ACCURACY IS BETTER THAN-0.02 DEGREES. C C INPUT; DAY = MODIFIED JULIAN DAY C C OUTPUT: X(l),X(2),X()) = UNIT VECTOR TOWARDS SUN. IMPLICIT REAL*8 (A-H,O-Z) DIMENSION X(3) DATA XLSUNA/4.609338799DO/,XLSUMB/0.0172027915DO/ DATA ECLECC/0.33430838D-01/,ECLOM/4.933739595DO/ DATA CECL/0.917468517DO/,SECl.397808395DO/ DATA TWOPI/6.2831953072DO/ Y=DAY*XLSUNB+XLSUNA Z=DMOD(Y,TWOPI) Z=Z+DSIN(Z-ECLOM)*ECLECC X(1)=DCOS(Z) Z=DSIN(Z) X(2)=Z*CECL X(3)=Z*SECL RETURN END C C C SUBROUTINE P1950(TJUL,P) CP COMPUTES THE PRECESSION MATRIX P(3,3) AT TIME TJUL C TRANSFORMATION: R(MEAN AT TJUL) = P(,)*R(1950) = SUM P(I,J)*R(J),J-1,3 C REF: THE ASTRONOMICAL EPHEMERIS 1976, P. 536 C CINPUT: TJUL=MODIFIED JULIAN DAY COUTPUT: P(3,3)=PRECESSION MATRIX C IMPLICIT REAL*8 (A-H,O-Z) DIMENSION P(3,3) V-TJUL*(3.059532D-7+TJUL*(1.098D-15+TJUL*1.79ID-21)) Z=V+TJUL*TJUL*(2.875D-15+TJUL*1.29D-22) H-TJUL*(2.6604000-7-TJUL*(1.548D-15+TJUL*4.14D-21)) CV=DCOS(V) SV=DSIN(V) CZ=DCOS(Z) SZ=DSIN(Z) CH=DCOS(H) SH=DSIN(H) P(l,l)=-SV*SZ+CV*CZ*CH P(1,2)=-CV*SZ-SV*CZ*CH P(1,3)=-CZ*SH P(2,1)=SV*CZ+CV*SZ*CH P(2,2)=CV*CZ-SV*SZ*CH P(2,3)=-SZ*SH P(3,1)=CV*SH P(3,2)=-SV*SH P(3,3)=CH RETURN END C C==== SUBR MULI REQD BY DROTR ================================ C SUBROUTINE MULI(XYZ,W,XYZN) CC CALCULATES THE PRODUCT Of TWO 3*3 MATRICES CC I.E XYZN=XYZ*W CC J.0. 14/10/86 REAL*8 XYZ(3,3),W(3,3),XYZN(3,3) DOLOOP I-1,3 DOLOOP J-1,3