aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/astro/jup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/astro/jup.c')
-rw-r--r--src/cmd/astro/jup.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/cmd/astro/jup.c b/src/cmd/astro/jup.c
new file mode 100644
index 00000000..a3353382
--- /dev/null
+++ b/src/cmd/astro/jup.c
@@ -0,0 +1,68 @@
+#include "astro.h"
+
+void
+jup(void)
+{
+ double pturbl, pturbb, pturbr;
+ double lograd;
+ double dele, enom, vnom, nd, sl;
+
+
+ ecc = .0483376 + 163.e-6*capt;
+ incl = 1.308660 - .0055*capt;
+ node = 99.43785 + 1.011*capt;
+ argp = 12.71165 + 1.611*capt;
+ mrad = 5.202803;
+ anom = 225.22165 + .0830912*eday - .0484*capt;
+ motion = 299.1284/3600.;
+
+
+ anom = anom;
+ incl *= radian;
+ node *= radian;
+ argp *= radian;
+ anom = fmod(anom,360.)*radian;
+
+ enom = anom + ecc*sin(anom);
+ do {
+ dele = (anom - enom + ecc * sin(enom)) /
+ (1. - ecc*cos(enom));
+ enom += dele;
+ } while(fabs(dele) > converge);
+ vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),
+ cos(enom/2.));
+ rad = mrad*(1. - ecc*cos(enom));
+
+ lambda = vnom + argp;
+
+ pturbl = 0.;
+
+ lambda += pturbl*radsec;
+
+ pturbb = 0.;
+
+ pturbr = 0.;
+
+/*
+ * reduce to the ecliptic
+ */
+
+ nd = lambda - node;
+ lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
+
+ sl = sin(incl)*sin(nd) + pturbb*radsec;
+ beta = atan2(sl, pyth(sl));
+
+ lograd = pturbr*2.30258509;
+ rad *= 1. + lograd;
+
+
+ lambda += 555.*radsec;
+ beta -= 51.*radsec;
+ motion *= radian*mrad*mrad/(rad*rad);
+ semi = 98.47;
+
+ mag = -8.93;
+ helio();
+ geo();
+}