## 4. Software

The software includes:

• `attidf.for` - a FORTRAN subroutine to get a matrix M (named `PA` in the subroutine text) to transform any vector from the S/C coordinate system to the GSE coordinate system:

VGSE = M * VS/C

To transform a vector from the GSE coordinate system to the S/C coordinate system transpose the matrix M:

VS/C = MT * VGSE

#### Usage example

Here is an example of using the subroutine `attidf.for`

Let us suppose that we have a direction in the S/C frame:

VS/C(x) = 0.866025
VS/C(y) = 0.353553
VS/C(z) = 0.353553

We want to know the direction of this vector in the GSE frame for date: `30.05.1997, time 1h.0min.0sec. ut. `

We use the line in attitude coefficients arrays corresponding to an attitude coefficients data set for the given interval.

``````
interval beginning: date 97.05.30, time 2.104 thousands of sec
interval duration:  4.594 thousands of sec.
``````

Our time of interest (3.6 thousands of sec) is within the interval.

We use the subroutine {attidf}.
Our input parameters :

``````
ts=1.496 (which is 3.6 (the time of interest) minus 2.104 )

A1=  -.288     B1=   .891      ω1=   53.1951
A2=  6.104     B2= -3.159      ω2=   36.6355
A3=  3.104     B3=  6.075      c1=    2.6714
A4=  -.027     B4=  -.103      c2=  -53.1951
A5=  -.036     B5=  -.077
``````

The result is the matrix of transformation `M`:

``````
0.993484  -0.113452  0.010904
M=  -0.112566  -0.991700 -0.062135
0.017862   0.060503 -0.998008
``````

So the vector in the GSE system equals to VGSE = M * VS/C :

``````
Vgse(x)= 0.824126
Vgse(y)=-0.470072
Vgse(z)=-0.315989
``````