# [Spice_discussion] Moon mean equator and equinox of j2000 frame

Eagle, David C david.c.eagle at lmco.com
Thu Aug 9 12:04:30 PDT 2007

```Hello,

I'm trying to create an inertial frame which we call the moon mean
equator and equinox of J2000.  Essentially, we need the transformation
performed by the iau_moon transformation but without the effect of the
motion of the prime meridian (PA and PA rates are zero).

I have tested the computation by zeroing the PA terms and rates in the
pck00008.tpc data file. However, we will eventually need both the
iau_moon and this inertial frame in our trajectory simulations.

I think this can be done using an Euler frame definition but I'm not
sure what to do about the PREC_MODEL and NUT_MODEL statements in the
frame definition. Perhaps these definitions are not needed.

We have implemented this transformation in Fortran but are attempting to
"standardize" our scientific simulations using as much of the SPICE
library as possible.

Thanks,

C. David Eagle

Senior Staff Systems Engineer

Orion Mission Analysis

Lockheed Martin Space Systems

303-971-6310

david.c.eagle at lmco.com

P.O. Box 179    MS W3003

Denver, CO 80201-0179

subroutine mm2000 (xjdate, tmatrix)

c     eme2000 to moon mean equator and equinox of j2000

c     input

c      xjdate = julian date

c     output

c      tmatrix = transformation matrix

c     ************************************

implicit double precision (a-h, o-z)

dimension phat_moon(3), rmoon(3), vmoon(3)

dimension xvec(3), xhat(3), yvec(3), yhat(3)

dimension zhat(3), hv(3), hhat(3), tmatrix(3, 3)

data dtr /1.745329251994330d-2/

c     time arguments

t = (xjdate - 2451545.0d0) / 36525.0d0

d = xjdate - 2451545.0d0

c     iau 2000 pole orientation

e1 = 125.045d0 -  0.0529921d0 * d

e2 = 250.089d0 -  0.1059842d0 * d

e3 = 260.008d0 + 13.0120009d0 * d

e4 = 176.625d0 + 13.3407154d0 * d

e5 = 357.529d0 +  0.9856003d0 * d

e6 = 311.589d0 + 26.4057084d0 * d

e7 = 134.963d0 + 13.0649930d0 * d

e8 = 276.617d0 +  0.3287146d0 * d

e10 = 15.134d0 -  0.1589763d0 * d

e13 = 25.053d0 + 12.9590088d0 * d

rasc_pole = 269.9949d0 + 0.0031d0 * t

&            - 3.8787d0 * sin(dtr * e1)

&            - 0.1204d0 * sin(dtr * e2)

&            + 0.0700d0 * sin(dtr * e3)

&            - 0.0172d0 * sin(dtr * e4)

&            + 0.0072d0 * sin(dtr * e6)

&            - 0.0052d0 * sin(dtr * e10)

&            + 0.0043d0 * sin(dtr * e13)

decl_pole = 66.5392d0 + 0.0130d0 * t

&            + 1.5419d0 * cos(dtr * e1)

&            + 0.0239d0 * cos(dtr * e2)

&            - 0.0278d0 * cos(dtr * e3)

&            + 0.0068d0 * cos(dtr * e4)

&            - 0.0029d0 * cos(dtr * e6)

&            + 0.0009d0 * cos(dtr * e7)

&            + 0.0008d0 * cos(dtr * e10)

&            - 0.0009d0 * cos(dtr * e13)

c     compute the unit vector in the direction of the moon's pole

phat_moon(1) = cos(rasc_pole * dtr) * cos(decl_pole * dtr)

phat_moon(2) = sin(rasc_pole * dtr) * cos(decl_pole * dtr)

phat_moon(3) = sin(decl_pole * dtr)

zhat(1) = 0.0d0

zhat(2) = 0.0d0

zhat(3) = 1.0d0

c     x-direction

call vcross (zhat, phat_moon, xvec)

call uvector(xvec, xhat)

c     y-direction

call vcross (phat_moon, xhat, yvec)

call uvector(yvec, yhat)

c     load elements of transformation matrix

tmatrix(1, 1) = xhat(1)

tmatrix(1, 2) = xhat(2)

tmatrix(1, 3) = xhat(3)

tmatrix(2, 1) = yhat(1)

tmatrix(2, 2) = yhat(2)

tmatrix(2, 3) = yhat(3)

tmatrix(3, 1) = phat_moon(1)

tmatrix(3, 2) = phat_moon(2)

tmatrix(3, 3) = phat_moon(3)

return

end

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://naif.jpl.nasa.gov/pipermail/spice_discussion/attachments/20070809/5eb7d960/attachment-0002.html
```