source: trunk/MagicSoft/slalib/planel.c@ 807

Last change on this file since 807 was 731, checked in by tbretz, 23 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 3.9 KB
Line 
1#include "slalib.h"
2#include "slamac.h"
3void slaPlanel ( double date, int jform, double epoch, double orbinc,
4 double anode, double perih, double aorq, double e,
5 double aorl, double dm, double pv[6], int* jstat )
6/*
7** - - - - - - - - - -
8** s l a P l a n e l
9** - - - - - - - - - -
10**
11** Heliocentric position and velocity of a planet, asteroid or comet,
12** starting from orbital elements.
13**
14** Given:
15** date double date, Modified Julian Date (JD - 2400000.5)
16** jform int choice of element set (1-3; Note 3)
17** epoch double epoch of elements (TT MJD)
18** orbinc double inclination (radians)
19** anode double longitude of the ascending node (radians)
20** perih double longitude or argument of perihelion (radians)
21** aorq double mean distance or perihelion distance (AU)
22** e double eccentricity
23** aorl double mean anomaly or longitude (radians, jform=1,2 only)
24** dm double daily motion (radians, jform=1 only)
25**
26** Returned:
27** pv double[6] heliocentric x,y,z,xdot,ydot,zdot of date,
28** J2000 equatorial triad (AU,AU/s)
29** jstat int* status: 0 = OK
30** -1 = illegal jform
31** -2 = illegal e
32** -3 = illegal aorq
33** -4 = illegal dm
34** -5 = numerical error
35**
36** Called: slaEl2ue, slaUe2pv
37**
38** Notes
39**
40** 1 DATE is the instant for which the prediction is required. It is
41** in the TT timescale (formerly Ephemeris Time, ET) and is a
42** Modified Julian Date (JD-2400000.5).
43**
44** 2 The elements are with respect to the J2000 ecliptic and equinox.
45**
46** 3 Three different element-format options are available:
47**
48** Option jform=1, suitable for the major planets:
49**
50** epoch = epoch of elements (TT MJD)
51** orbinc = inclination i (radians)
52** anode = longitude of the ascending node, big omega (radians)
53** perih = longitude of perihelion, curly pi (radians)
54** aorq = mean distance, a (AU)
55** e = eccentricity, e (range 0 to <1)
56** aorl = mean longitude L (radians)
57** dm = daily motion (radians)
58**
59** Option jform=2, suitable for minor planets:
60**
61** epoch = epoch of elements (TT MJD)
62** orbinc = inclination i (radians)
63** anode = longitude of the ascending node, big omega (radians)
64** perih = argument of perihelion, little omega (radians)
65** aorq = mean distance, a (AU)
66** e = eccentricity, e (range 0 to <1)
67** aorl = mean anomaly M (radians)
68**
69** Option jform=3, suitable for comets:
70**
71** epoch = epoch of perihelion (TT MJD)
72** orbinc = inclination i (radians)
73** anode = longitude of the ascending node, big omega (radians)
74** perih = argument of perihelion, little omega (radians)
75** aorq = perihelion distance, q (AU)
76** e = eccentricity, e (range 0 to 10)
77**
78** 4 Unused elements (DM for jform=2, aorl and dm for jform=3) are
79** not accessed.
80**
81** 5 The reference frame for the result is with respect to the mean
82** equator and equinox of epoch J2000.
83**
84** 6 The algorithm was originally adapted from the EPHSLA program
85** of D.H.P.Jones (private communication, 1996). The method is
86** based on Stumpff's Universal Variables.
87**
88** Reference: Everhart, E. & Pitkin, E.T., Am.J.Phys. 51, 712, 1983.
89**
90** Last revision: 18 March 1999
91**
92** Copyright P.T.Wallace. All rights reserved.
93*/
94{
95 double u[13];
96 int j;
97
98
99
100/* Validate elements and convert to "universal variables" parameters. */
101 slaEl2ue ( date, jform,
102 epoch, orbinc, anode, perih, aorq, e, aorl, dm, u, &j );
103
104/* Determine the position and velocity. */
105 if ( !j ) {
106 slaUe2pv ( date, u, pv, &j );
107 if ( j ) j = -5;
108 }
109
110/* Wrap up. */
111 *jstat = j;
112
113}
Note: See TracBrowser for help on using the repository browser.