/*  
 *  - - - - - - - - - -  
 *   g a l _ e p v 0 0  
 *  - - - - - - - - - -  
 *  
 *  This routine is part of the General Astrodynamics Library  
 *  
 *  Description: 
 *  
 *  Earth position and velocity, heliocentric and barycentric, with  
 *  respect to the International Celestial Reference Frame.  
 *  
 *  This routine is an independent translation of a FORTRAN routine  
 *  that is part of IAU's SOFA software collection.  
 *  
 *  Status:
 *  
 *     support routine.  
 *  
 *  Given:
 *  
 *     epoch1              d        TDB epoch part A (Note 1)  
 *     epoch2              d        TDB epoch part B (Note 1)  
 *  
 *  Returned:
 *  
 *     pvh              d[2][3]     heliocentric Earth position/velocity (AU,AU/day)  
 *     pvb              d[2][3]     barycentric Earth position/velocity (AU,AU/day)  
 *     gal_epv00           i        status: 0 = OK  
 *                                         +1 = warning: date outside 1900-2100 AD  
 *  
 *  Notes:  
 *  
 *  1) The epoch epoch1+epoch2 is a Julian Date, apportioned in  
 *     any convenient way between the two arguments.  For example,  
 *     JD(TDB)=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.  
 *  
 *  2) On return, the arrays pvh and pvb contain the following:  
 *  
 *        pvh[0][0]  x       }  
 *        pvh[0][1]  y       } heliocentric position, AU  
 *        pvh[0][2]  z       }  
 *  
 *        pvh[1][0]  xdot    }  
 *        pvh[1][1]  ydot    } heliocentric velocity, AU/d  
 *        pvh[1][2]  zdot    }  
 *  
 *        pvb[0][0]  x       }  
 *        pvb[0][1]  y       } barycentric position, AU  
 *        pvb[0][2]  z       }  
 *  
 *        pvb[1][0]  xdot    }  
 *        pvb[1][1]  ydot    } barycentric velocity, AU/d  
 *        pvb[1][2]  zdot    }  
 *  
 *     The vectors are with respect to the International Celestial  
 *     Reference Frame.  The time unit is one day in TDB.  
 *  
 *  3) The routine is a SIMPLIFIED SOLUTION from the planetary theory  
 *     VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics &  
 *     Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original  
 *     Fortran code supplied by P. Bretagnon (private comm., 2000).  
 *  
 *  4) Comparisons over the time span 1900-2100 with this simplified  
 *     solution and the JPL DE405 ephemeris give the following results:  
 *  
 *                                RMS    max  
 *           Heliocentric:  
 *              position error    3.7   11.2   km  
 *              velocity error    1.4    5.0   mm/s  
 *  
 *           Barycentric:  
 *              position error    4.6   13.4   km  
 *              velocity error    1.4    4.9   mm/s  
 *  
 *  This revision:
 *  
 *     2005 April 5 ( c version 2008 June 8 )  
 *  
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end.  
 *  
 *-----------------------------------------------------------------------  
 */  
  
#ifndef _GAL_EPV00_H_  
#define _GAL_EPV00_H_ 1  

#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_epv00  
 (  
    double epoch1,  
    double epoch2,  
    double pvh[2][3],  
    double pvb[2][3]
 ) ;  
  
__END_DECLS  
  
#endif /* !_GAL_EPV00_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  
 */  
