/*  
 *  - - - - - - - - -
 *   g a l _ s g p 4
 *  - - - - - - - - -
 *  
 *  This routine is part of the General Astrodynamics Library  
 *
 *  Description:
 *
 *     This routine is the SGP4 prediction model from Space Command. This is an
 *     updated and combined version of SGP4 and SDP4, which were originally
 *     published separately in Spacetrack Report #3. This version follows the
 *     methodology from the AIAA paper (2006) describing the history and
 *     development of the code.
 *  
 *  Status: 
 *  
 *     SGP4 support routine.  
 *  
 *  Given:  
 *
 *     *sgp4        gal_sgp4_t      Initialised structure from gal_sgp4init call.
 *     epoch1           d           UTC epoch part A (Note 1)  
 *     epoch2           d           UTC epoch part B (Note 1)  
 *  
 *  Returned:  
 *  
 *     *sgp4        gal_sgp4_t      Common values for subsequent calls
 *     pv            d[2][3]        Geocentric position/velocity (m, m/sec)  
 *     gal_sgp4         i           GAL_SUCCESS if OK
 *                                  1 = mean elements, ecc >= 1.0 or ecc < -0.001 or a < 0.95 er
 *                                  2 = mean motion less than 0.0
 *                                  3 = pert elements, ecc < 0.0  or  ecc > 1.0
 *                                  4 = semi-latus rectum < 0.0
 *                                  5 = epoch elements are sub-orbital
 *                                  6 = satellite has decayed
 *
 *  Notes:  
 *  
 *  1) This routine is a translation from c++ to c of David Vallado's SGP4UNIT.sgp4 
 *     routine ( 2007 November 16 ). 
 *
 *  2) The epoch epoch1+epoch2 is a Julian Date, apportioned in  
 *     any convenient way between the two arguments.  For example,  
 *     JD(UTC)=2450123.7 could be expressed in any of these ways,  
 *     among others:  
 *  
 *            epoch1       epoch2  
 *  
 *         2450123.7          0.0        (JD method)  
 *         2451545.0      -1421.3        (J2000 method)  
 *         2400000.5      50123.2        (MJD method)  
 *         2450123.5          0.2        (date & time method)  
 *  
 *     The JD method is the most natural and convenient to use in  
 *     cases where the loss of several decimal digits of resolution  
 *     is acceptable.  The J2000 method is best matched to the way  
 *     the argument is handled internally and will deliver the  
 *     optimum resolution.  The MJD method and the date & time methods  
 *     are both good compromises between resolution and convenience.  
 *     However, the accuracy of the result is more likely to be  
 *     limited by the algorithm itself than the way the epoch has been  
 *     expressed. 
 * 
 *  Called:
 *
 *     gal_sgp4gm       Get gravity model parameters for SGP4
 *     gal_dpper        
 *     gal_dspace
 *
 *  References:
 *
 *     NORAD Spacetrack Report #3 1980
 *     Hoots, Roehrich 
 *
 *     NORAD Spacetrack Report #6 1986
 *     Hoots 
 *
 *     Hoots, Schumacher and Glover 2004
 *
 *     Revisting Spacetrack Report #3
 *     Vallado, David, Crawford, Paul, Hujsak, Richard, Kelso, T.S.
 *     AIAA 2006-6753
 *
 *  This revision:  
 * 
 *     2008 May 4 
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end. 
 *  
 *-----------------------------------------------------------------------  
 */  

#ifndef _GAL_SGP4_H_  
#define _GAL_SGP4_H_ 1  

#include "gal_gm.h"
#include "gal_sgp4t.h"
#include "gal_sgp4init.h"
  
#undef  __BEGIN_DECLS  
#undef  __END_DECLS  
#ifdef  __cplusplus  
#define __BEGIN_DECLS extern "C" {  
#define __END_DECLS }  
#else  
#define __BEGIN_DECLS /* empty */  
#define __END_DECLS   /* empty */  
#endif
  
__BEGIN_DECLS  
  
int 
gal_sgp4
  (
    gal_sgp4_t *sgp4,
    double epoch1,
    double epoch2,
    double pv[2][3]
  ) ; 
   
__END_DECLS  
  
#endif /* !_GAL_SGP4_H_ */ 

/*
 *  gal - General Astrodynamics Library  
 *  Copyright (C) 2008 Paul C. L. Willmott  
 *  
 *  This program is free software; you can redistribute it and/or modify  
 *  it under the terms of the GNU General Public License as published by  
 *  the Free Software Foundation; either version 2 of the License, or  
 *  (at your option) any later version.  
 *  
 *  This program is distributed in the hope that it will be useful,  
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 *  GNU General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License along  
 *  with this program; if not, write to the Free Software Foundation, Inc.,  
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  
 *    
 *  Contact:  
 *    
 *  Paul Willmott  
 *  vp9mu@amsat.org  
 */  
  
