This is ovenus.c in view mode; [Download] [Up]
/************************************************/ /* ovenus.c */ /* */ /* Orbital elements and perturbations for the */ /* planet Venus using formulas given by Meeus */ /************************************************/ /***** description * * $Id: ovenus.c,v 1.3 1993/04/21 21:41:40 craig Exp $ * */ /***** modification history * * $Log: ovenus.c,v $ * Revision 1.3 1993/04/21 21:41:40 craig * Changed the path of the satellite.h include. * Changed ecnsts to pcnsts. * * Revision 1.2 1993/04/21 15:31:17 craig * First working version. Ran through indent and converted to ansi. * Added hooks for working with the satellite programs. * * */ /***** include files *****/ #include <math.h> #include "aaproto.h" #include "satellite.h" /***** global variables *****/ extern struct MCONSTANTS mcnsts; extern struct PCONSTANTS pcnsts; /* from oearth.c */ extern double M; extern double T; /* from manoms.c */ extern double M2; extern double M5; /* from ojupiter.c */ extern double f; /********************/ /* ovenus */ /* */ /* Orbital elements */ /********************/ int ovenus (struct orbit * e, double J) { double p; e->epoch = J; manoms (J); e->M = M2; e->a = 0.7233316; e->ecc = (0.000000091 * T - 0.00004774) * T + 0.00682069; e->equinox = pcnsts.J2000; e->i = ((1.8e-8 * T - 3.250e-5) * T - 0.0007913) * T + 3.395459; f = ((-7.94e-7 * T - 0.00114464) * T + 0.2892764) * T + 54.602827; e->w = mod360 (f); f = ((7.69e-7 * T - 0.00014010) * T - 0.2776656) * T + 76.957740; e->W = mod360 (f); f = e->M + e->w + e->W; e->L = mod360 (f); /* The following perturbation is applied before solving Kepler's equation: */ f = (237.24 + 150.27 * T) * mcnsts.de2ra; p = 0.00077 * sin (f); e->L += p; e->M += p; return (0); } /********************************************************/ /* cvenus */ /* */ /* Perturbations added after solving Kepler's equation */ /********************************************************/ int cvenus (struct orbit * e) { double p; /* perturbation in longitude */ f = (2.0 * M - 2.0 * M2 - 148.225) * mcnsts.de2ra; p = 0.00313 * cos (f); f = (3.0 * M - 3.0 * M2 + 2.565) * mcnsts.de2ra; p += 0.00198 * cos (f); f = (M - M2 - 119.107) * mcnsts.de2ra; p += 0.00136 * cos (f); f = (3.0 * M - 2.0 * M2 - 135.912) * mcnsts.de2ra; p += 0.00096 * cos (f); f = (M5 - M2 - 208.087) * mcnsts.de2ra; p += 0.00082 * cos (f); e->L += p * mcnsts.de2ra; /* perturbation in radius vector */ f = (2.0 * M - 2.0 * M2 - 58.208) * mcnsts.de2ra; p = 0.000022501 * cos (f); f = (3.0 * M - 3.0 * M2 + 92.577) * mcnsts.de2ra; p += 0.000019045 * cos (f); f = (M5 - M2 - 118.090) * mcnsts.de2ra; p += 0.000006887 * cos (f); f = (M - M2 - 29.110) * mcnsts.de2ra; p += 0.000005172 * cos (f); f = (5.0 * M - 4 * M2 - 104.208) * mcnsts.de2ra; p += 0.000003620 * cos (f); f = (4.0 * M - 4.0 * M2 + 63.513) * mcnsts.de2ra; p += 0.000003283 * cos (f); f = (2.0 * M5 - 2.0 * M2 - 55.167) * mcnsts.de2ra; p += 0.000003074 * cos (f); e->r += p; return (0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.