FACT++  1.0
palEcmat.c
Go to the documentation of this file.
1 /*
2 *+
3 * Name:
4 * palEcmat
5 
6 * Purpose:
7 * Form the equatorial to ecliptic rotation matrix - IAU 2006
8 * precession model.
9 
10 * Language:
11 * Starlink ANSI C
12 
13 * Type of Module:
14 * Library routine
15 
16 * Invocation:
17 * palEcmat( double date, double rmat[3][3] )
18 
19 * Arguments:
20 * date = double (Given)
21 * TT as Modified Julian Date (JD-2400000.5). The difference
22 * between TT and TDB is of the order of a millisecond or two
23 * (i.e. about 0.02 arc-seconds).
24 * rmat = double[3][3] (Returned)
25 * Rotation matrix
26 
27 * Description:
28 * The equatorial to ecliptic rotation matrix is found and returned.
29 * The matrix is in the sense V(ecl) = RMAT * V(equ); the
30 * equator, equinox and ecliptic are mean of date.
31 
32 * Authors:
33 * PTW: Pat Wallace (STFC)
34 * DSB: David Berry (JAC, Hawaii)
35 * {enter_new_authors_here}
36 
37 * History:
38 * 2012-02-10 (DSB):
39 * Initial version with documentation taken from Fortran SLA
40 * Adapted with permission from the Fortran SLALIB library.
41 * {enter_further_changes_here}
42 
43 * Copyright:
44 * Copyright (C) 1996 Rutherford Appleton Laboratory
45 * Copyright (C) 2012 Science and Technology Facilities Council.
46 * All Rights Reserved.
47 
48 * Licence:
49 * This program is free software: you can redistribute it and/or
50 * modify it under the terms of the GNU Lesser General Public
51 * License as published by the Free Software Foundation, either
52 * version 3 of the License, or (at your option) any later
53 * version.
54 *
55 * This program is distributed in the hope that it will be useful,
56 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58 * GNU Lesser General Public License for more details.
59 *
60 * You should have received a copy of the GNU Lesser General
61 * License along with this program. If not, see
62 * <http://www.gnu.org/licenses/>.
63 
64 * Bugs:
65 * {note_any_bugs_here}
66 *-
67 */
68 
69 #include "pal.h"
70 #include "palmac.h"
71 #include "pal1sofa.h"
72 
73 void palEcmat( double date, double rmat[3][3] ) {
74 
75 /* Mean obliquity (the angle between the ecliptic and mean equator of
76  date). */
77  double eps0 = eraObl06( PAL__MJD0, date );
78 
79 /* Matrix */
80  palDeuler( "X", eps0, 0.0, 0.0, rmat );
81 
82 }
void palEcmat(double date, double rmat[3][3])
Definition: palEcmat.c:73
void palDeuler(const char *order, double phi, double theta, double psi, double rmat[3][3])
Definition: palDeuler.c:95
double eraObl06(double date1, double date2)
Definition: obl06.c:3
static const double PAL__MJD0
Definition: palmac.h:96