1 /*
2  *  - - - - - - - - - -
3  *   g a l _ d s c o m
4  *  - - - - - - - - - -
5  *
6  *  This routine is part of the General Astrodynamics Library
7  *
8  *  Description:
9  *
10  *     This routine provides deep space common items used by both the secular
11  *     and periodics routines.
12  *
13  *  Status:
14  *
15  *     SGP4 support routine.
16  *
17  *  Given:
18  *
19  *     epoch            d
20  *     ep               d           Eccentricity
21  *     argpp            d           Argument of Perigee
22  *     tc               d
23  *     inclp            d           Inclination
24  *     nodep            d           Right Ascension of Ascending Node
25  *     np               d           Mean Motion
26  *
27  *  Returned:
28  *
29  *     *sinim           d
30  *     *cosim           d
31  *     *sinomm          d
32  *     *cosomm          d
33  *     *snodm           d
34  *     *cnodm           d
35  *     *day             d
36  *     *e3              d
37  *     *ee2             d
38  *     *em              d           Eccentricity
39  *     *emsq            d           Eccentricity squared
40  *     *gam             d
41  *     *peo             d
42  *     *pgho            d
43  *     *pho             d
44  *     *pinco           d
45  *     *plo             d
46  *     *rtemsq          d
47  *     *se2             d
48  *     *se3             d
49  *     *sgh2            d
50  *     *sgh3            d
51  *     *sgh4            d
52  *     *sh2             d
53  *     *sh3             d
54  *     *si2             d
55  *     *si3             d
56  *     *sl2             d
57  *     *sl3             d
58  *     *sl4             d
59  *     *s1              d
60  *     *s2              d
61  *     *s3              d
62  *     *s4              d
63  *     *s5              d
64  *     *s6              d
65  *     *s7              d
66  *     *ss1             d
67  *     *ss2             d
68  *     *ss3             d
69  *     *ss4             d
70  *     *ss5             d
71  *     *ss6             d
72  *     *ss7             d
73  *     *sz1             d
74  *     *sz2             d
75  *     *sz3             d
76  *     *sz11            d
77  *     *sz12            d
78  *     *sz13            d
79  *     *sz21            d
80  *     *sz22            d
81  *     *sz23            d
82  *     *sz31            d
83  *     *sz32            d
84  *     *sz33            d
85  *     *xgh2            d
86  *     *xgh3            d
87  *     *xgh4            d
88  *     *xh2             d
89  *     *xh3             d
90  *     *xi2             d
91  *     *xi3             d
92  *     *xl2             d
93  *     *xl3             d
94  *     *xl4             d
95  *     *nm              d           Mean Motion
96  *     *z1              d
97  *     *z2              d
98  *     *z3              d
99  *     *z11             d
100  *     *z12             d
101  *     *z13             d
102  *     *z21             d
103  *     *z22             d
104  *     *z23             d
105  *     *z31             d
106  *     *z32             d
107  *     *z33             d
108  *     *zmol            d
109  *     *zmos            d
110  *
111  *  Notes:
112  *
113  *  1) This routine is a translation from c++ to c of David Vallado's SGP4UNIT.dscom
114  *     routine ( 2007 November 16 ). This routine used to be called dpper, but the
115  *     functions inside weren't well organized.
116  *
117  *  References:
118  *
119  *     NORAD Spacetrack Report #3 1980
120  *     Hoots, Roehrich
121  *
122  *     NORAD Spacetrack Report #6 1986
123  *     Hoots
124  *
125  *     Hoots, Schumacher and Glover 2004
126  *
127  *     Revisting Spacetrack Report #3
128  *     Vallado, David, Crawford, Paul, Hujsak, Richard, Kelso, T.S.
129  *     AIAA 2006-6753
130  *
131  *  This revision:
132  *
133  *     2008 April 6
134  *
135  *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end.
136  *
137  *-----------------------------------------------------------------------
138  */
139 
140 #ifndef _GAL_DSCOM_H_
141 #define _GAL_DSCOM_H_ 1
142 
143 #undef  __BEGIN_DECLS
144 #undef  __END_DECLS
145 #ifdef  __cplusplus
146 #define __BEGIN_DECLS extern "C" {
147 #define __END_DECLS }
148 #else
149 #define __BEGIN_DECLS /* empty */
150 #define __END_DECLS   /* empty */
151 #endif
152 
153 __BEGIN_DECLS
154 
155 void
156 gal_dscom
157   (
158     double epoch,
159     double ep,
160     double argpp,
161     double tc,
162     double inclp,
163     double nodep,
164     double np,
165     double *snodm,
166     double *cnodm,
167     double *sinim,
168     double *cosim,
169     double *sinomm,
170     double *cosomm,
171     double *day,
172     double *e3,
173     double *ee2,
174     double *em,
175     double *emsq,
176     double *gam,
177     double *peo,
178     double *pgho,
179     double *pho,
180     double *pinco,
181     double *plo,
182     double *rtemsq,
183     double *se2,
184     double *se3,
185     double *sgh2,
186     double *sgh3,
187     double *sgh4,
188     double *sh2,
189     double *sh3,
190     double *si2,
191     double *si3,
192     double *sl2,
193     double *sl3,
194     double *sl4,
195     double *s1,
196     double *s2,
197     double *s3,
198     double *s4,
199     double *s5,
200     double *s6,
201     double *s7,
202     double *ss1,
203     double *ss2,
204     double *ss3,
205     double *ss4,
206     double *ss5,
207     double *ss6,
208     double *ss7,
209     double *sz1,
210     double *sz2,
211     double *sz3,
212     double *sz11,
213     double *sz12,
214     double *sz13,
215     double *sz21,
216     double *sz22,
217     double *sz23,
218     double *sz31,
219     double *sz32,
220     double *sz33,
221     double *xgh2,
222     double *xgh3,
223     double *xgh4,
224     double *xh2,
225     double *xh3,
226     double *xi2,
227     double *xi3,
228     double *xl2,
229     double *xl3,
230     double *xl4,
231     double *nm,
232     double *z1,
233     double *z2,
234     double *z3,
235     double *z11,
236     double *z12,
237     double *z13,
238     double *z21,
239     double *z22,
240     double *z23,
241     double *z31,
242     double *z32,
243     double *z33,
244     double *zmol,
245     double *zmos
246   ) ;
247 
248 __END_DECLS
249 
250 #endif /* !_GAL_DSCOM_H_ */
251 
252 /*
253  *  gal - General Astrodynamics Library
254  *  Copyright (C) 2008 Paul C. L. Willmott
255  *
256  *  This program is free software; you can redistribute it and/or modify
257  *  it under the terms of the GNU General Public License as published by
258  *  the Free Software Foundation; either version 2 of the License, or
259  *  (at your option) any later version.
260  *
261  *  This program is distributed in the hope that it will be useful,
262  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
263  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
264  *  GNU General Public License for more details.
265  *
266  *  You should have received a copy of the GNU General Public License along
267  *  with this program; if not, write to the Free Software Foundation, Inc.,
268  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
269  *
270  *  Contact:
271  *
272  *  Paul Willmott
273  *  vp9mu@amsat.org
274  */
275 
276