C $Id: rtntogse.f,v 1.4 1998/07/24 19:41:44 asc Exp $ C subroutine for the transformation from rtn to gse c subroutine rtntogse(time,spacecraft_pos,RTN,GSE) C implicit none C integer*4 time(2) ! yearday (eg 1998095), millisec of day real*8 spacecraft_pos(3) ! position, in J2000GCI real*8 RTN(3),GSE(3) ! RTN input vector and GSE output integer*4 VELOCITY_REQ, istatus real*8 TRANSFORM_MATRIX(3,3), DERIV_MATRIX(3,3) real*8 GCI(3), GSM(3) C C OPEN(UNIT=6,STATUS='NEW',file='data.dat') C C time(1)=1998012 C time(2)=54466181 C write(6,*) ' AT time =',time C C spacecraft_pos(1) = 7.4545669885d+5 C spacecraft_pos(2) = -1.1366004289d+6 C spacecraft_pos(3) = -4.6248674225d+5 C write(6,*) ' j2000 pos =',spacecraft_pos C C RTN(1) =-9.8791186723D-1 C RTN(2) =-1.5214958272D-1 C RTN(3) = 2.9675698320D-2 C write(6,*) ' RTN att =',RTN C write(6,*) C C CONVERT FROM RTN TO GCI C VELOCITY_REQ = 0 ! Have not completed the derivative path call IC_RTN_TO_GCI (TIME,spacecraft_pos, 1 TRANSFORM_MATRIX,DERIV_MATRIX, 2 VELOCITY_REQ,ISTATUS) call MULMAT(TRANSFORM_MATRIX,RTN,3,3,1,GCI) C WRITE (6,*) ' GCI =',GCI C C CONVERT FROM GCI TO GSE C call IC_GCI_TO_GSE (TIME, 1 TRANSFORM_MATRIX,DERIV_MATRIX, 2 VELOCITY_REQ, 3 ISTATUS) call MULMAT(TRANSFORM_MATRIX,GCI,3,3,1,GSE) C WRITE (6,*) ' GSE =',GSE C C CONVERT FROM GCI TO GSM C call IC_GCI_TO_GSM (TIME, 1 TRANSFORM_MATRIX, 2 DERIV_MATRIX, 3 VELOCITY_REQ, 4 ISTATUS) call MULMAT(TRANSFORM_MATRIX,GCI,3,3,1,GSM) C WRITE (6,*) ' GSM =',GSM C RETURN END