FACT++  1.0
palNut.c
Go to the documentation of this file.
1 /*
2 *+
3 * Name:
4 * palNut
5 
6 * Purpose:
7 * Form the matrix of nutation
8 
9 * Language:
10 * Starlink ANSI C
11 
12 * Type of Module:
13 * Library routine
14 
15 * Invocation:
16 * void palNut( double date, double rmatn[3][3] );
17 
18 * Arguments:
19 * date = double (Given)
20 * TT as modified Julian date (JD-2400000.5)
21 * rmatn = double [3][3] (Returned)
22 * Nutation matrix in the sense v(true)=rmatn * v(mean)
23 * where v(true) is the star vector relative to the
24 * true equator and equinox of date and v(mean) is the
25 * star vector relative to the mean equator and equinox
26 * of date.
27 
28 * Description:
29 * Form the matrix of nutation for a given date using
30 * the IAU 2006 nutation model and palDeuler.
31 
32 * Authors:
33 * PTW: Patrick T. Wallace
34 * TIMJ: Tim Jenness (JAC, Hawaii)
35 * {enter_new_authors_here}
36 
37 * Notes:
38 * - Uses eraNut06a via palNutc
39 * - The distinction between TDB and TT is negligible. For all but
40 * the most critical applications UTC is adequate.
41 
42 * History:
43 * 2012-03-07 (TIMJ):
44 * Initial version
45 * Adapted with permission from the Fortran SLALIB library.
46 * {enter_further_changes_here}
47 
48 * Copyright:
49 * Copyright (C) 2005 Patrick T. Wallace
50 * Copyright (C) 2012 Science and Technology Facilities Council.
51 * All Rights Reserved.
52 
53 * Licence:
54 * This program is free software; you can redistribute it and/or
55 * modify it under the terms of the GNU General Public License as
56 * published by the Free Software Foundation; either version 3 of
57 * the License, or (at your option) any later version.
58 *
59 * This program is distributed in the hope that it will be
60 * useful, but WITHOUT ANY WARRANTY; without even the implied
61 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
62 * PURPOSE. See the GNU General Public License for more details.
63 *
64 * You should have received a copy of the GNU General Public License
65 * along with this program; if not, write to the Free Software
66 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
67 * MA 02110-1301, USA.
68 
69 * Bugs:
70 * {note_any_bugs_here}
71 *-
72 */
73 
74 #include "pal.h"
75 
76 void palNut( double date, double rmatn[3][3]) {
77  double dpsi, deps, eps0;
78 
79  /* Nutation component and mean obliquity */
80  palNutc( date, &dpsi, &deps, &eps0 );
81 
82  /* Rotation matrix */
83  palDeuler( "XZX", eps0, -dpsi, -(eps0+deps), rmatn );
84 
85 }
void palNut(double date, double rmatn[3][3])
Definition: palNut.c:76
void palNutc(double date, double *dpsi, double *deps, double *eps0)
Definition: palNutc.c:77
void palDeuler(const char *order, double phi, double theta, double psi, double rmat[3][3])
Definition: palDeuler.c:95