1 /*
2 *+
3 * Name:
4 * palEpv
5
6 * Purpose:
7 * Earth position and velocity with respect to the BCRS
8
9 * Language:
10 * Starlink ANSI C
11
12 * Type of Module:
13 * Library routine
14
15 * Invocation:
16 * void palEpv( double date, double ph[3], double vh[3],
17 * double pb[3], double vb[3] );
18
19 * Arguments:
20 * date = double (Given)
21 * Date, TDB Modified Julian Date (JD-2400000.5)
22 * ph = double [3] (Returned)
23 * Heliocentric Earth position (AU)
24 * vh = double [3] (Returned)
25 * Heliocentric Earth velocity (AU/day)
26 * pb = double [3] (Returned)
27 * Barycentric Earth position (AU)
28 * vb = double [3] (Returned)
29 * Barycentric Earth velocity (AU/day)
30
31 * Description:
32 * Earth position and velocity, heliocentric and barycentric, with
33 * respect to the Barycentric Celestial Reference System.
34
35 * Authors:
36 * TIMJ: Tim Jenness (JAC, Hawaii)
37 * {enter_new_authors_here}
38
39 * Notes:
40 * - See eraEpv00 for details on accuracy
41 * - Note that the status argument from eraEpv00 is ignored
42
43 * History:
44 * 2012-03-12 (TIMJ):
45 * Initial version
46 * Adapted with permission from the Fortran SLALIB library
47 * but now mainly calls SOFA routines.
48 * {enter_further_changes_here}
49
50 * Copyright:
51 * Copyright (C) 2012 Science and Technology Facilities Council.
52 * All Rights Reserved.
53
54 * Licence:
55 * This program is free software; you can redistribute it and/or
56 * modify it under the terms of the GNU General Public License as
57 * published by the Free Software Foundation; either version 3 of
58 * the License, or (at your option) any later version.
59 *
60 * This program is distributed in the hope that it will be
61 * useful, but WITHOUT ANY WARRANTY; without even the implied
62 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
63 * PURPOSE. See the GNU General Public License for more details.
64 *
65 * You should have received a copy of the GNU General Public License
66 * along with this program; if not, write to the Free Software
67 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
68 * MA 02110-1301, USA.
69
70 * Bugs:
71 * {note_any_bugs_here}
72 *-
73 */
74
75 #include "palmac.h"
76 #include "pal.h"
77 #include "pal1sofa.h"
78
palEpv(double date,double ph[3],double vh[3],double pb[3],double vb[3])79 void palEpv( double date, double ph[3], double vh[3],
80 double pb[3], double vb[3] ) {
81
82 int i;
83 double pvh[2][3];
84 double pvb[2][3];
85
86 eraEpv00( PAL__MJD0, date, pvh, pvb );
87
88 /* Copy into output arrays */
89 for (i=0; i<3; i++) {
90 ph[i] = pvh[0][i];
91 vh[i] = pvh[1][i];
92 pb[i] = pvb[0][i];
93 vb[i] = pvb[1][i];
94 }
95
96 }
97