source: trunk/FACT++/pal/palSubet.c@ 18825

Last change on this file since 18825 was 18347, checked in by tbretz, 9 years ago
File size: 3.0 KB
Line 
1/*
2*+
3* Name:
4* palSubet
5
6* Purpose:
7* Remove the E-terms from a pre IAU 1976 catalogue RA,Dec
8
9* Language:
10* Starlink ANSI C
11
12* Type of Module:
13* Library routine
14
15* Invocation:
16* void palSubet ( double rc, double dc, double eq,
17* double *rm, double *dm );
18
19* Arguments:
20* rc = double (Given)
21* RA with E-terms included (radians)
22* dc = double (Given)
23* Dec with E-terms included (radians)
24* eq = double (Given)
25* Besselian epoch of mean equator and equinox
26* rm = double * (Returned)
27* RA without E-terms (radians)
28* dm = double * (Returned)
29* Dec without E-terms (radians)
30
31* Description:
32* Remove the E-terms (elliptic component of annual aberration)
33* from a pre IAU 1976 catalogue RA,Dec to give a mean place.
34
35* Authors:
36* PTW: Pat Wallace (STFC)
37* TIMJ: Tim Jenness (JAC, Hawaii)
38* {enter_new_authors_here}
39
40* Notes:
41* Most star positions from pre-1984 optical catalogues (or
42* derived from astrometry using such stars) embody the
43* E-terms. This routine converts such a position to a
44* formal mean place (allowing, for example, comparison with a
45* pulsar timing position).
46
47* See Also:
48* Explanatory Supplement to the Astronomical Ephemeris,
49* section 2D, page 48.
50
51* History:
52* 2012-02-12(TIMJ):
53* Initial version with documentation taken from Fortran SLA
54* Adapted with permission from the Fortran SLALIB library.
55* {enter_further_changes_here}
56
57* Copyright:
58* Copyright (C) 1995 Rutherford Appleton Laboratory
59* Copyright (C) 2012 Science and Technology Facilities Council.
60* All Rights Reserved.
61
62* Licence:
63* This program is free software: you can redistribute it and/or
64* modify it under the terms of the GNU Lesser General Public
65* License as published by the Free Software Foundation, either
66* version 3 of the License, or (at your option) any later
67* version.
68*
69* This program is distributed in the hope that it will be useful,
70* but WITHOUT ANY WARRANTY; without even the implied warranty of
71* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72* GNU Lesser General Public License for more details.
73*
74* You should have received a copy of the GNU Lesser General
75* License along with this program. If not, see
76* <http://www.gnu.org/licenses/>.
77
78* Bugs:
79* {note_any_bugs_here}
80*-
81*/
82
83#include "pal.h"
84#include "pal1sofa.h"
85
86void palSubet ( double rc, double dc, double eq, double *rm, double *dm ) {
87 double a[3]; /* The E-terms */
88 double v[3];
89 double f;
90 int i;
91
92 /* Note the preference for IAU routines */
93
94 /* Retrieve the E-terms */
95 palEtrms( eq, a );
96
97 /* Spherical to Cartesian */
98 eraS2c( rc, dc, v );
99
100 /* Include the E-terms */
101 f = 1.0 + eraPdp( v, a );
102 for (i=0; i<3; i++) {
103 v[i] = f*v[i] - a[i];
104 }
105
106 /* Cartesian to spherical */
107 eraC2s( v, rm, dm );
108
109 /* Bring RA into conventional range */
110 *rm = eraAnp( *rm );
111
112}
Note: See TracBrowser for help on using the repository browser.