jup.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "astro.h"
  2. void
  3. jup(void)
  4. {
  5. double pturbl, pturbb, pturbr;
  6. double lograd;
  7. double dele, enom, vnom, nd, sl;
  8. ecc = .0483376 + 163.e-6*capt;
  9. incl = 1.308660 - .0055*capt;
  10. node = 99.43785 + 1.011*capt;
  11. argp = 12.71165 + 1.611*capt;
  12. mrad = 5.202803;
  13. anom = 225.22165 + .0830912*eday - .0484*capt;
  14. motion = 299.1284/3600.;
  15. anom = anom;
  16. incl *= radian;
  17. node *= radian;
  18. argp *= radian;
  19. anom = fmod(anom,360.)*radian;
  20. enom = anom + ecc*sin(anom);
  21. do {
  22. dele = (anom - enom + ecc * sin(enom)) /
  23. (1. - ecc*cos(enom));
  24. enom += dele;
  25. } while(fabs(dele) > converge);
  26. vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),
  27. cos(enom/2.));
  28. rad = mrad*(1. - ecc*cos(enom));
  29. lambda = vnom + argp;
  30. pturbl = 0.;
  31. lambda += pturbl*radsec;
  32. pturbb = 0.;
  33. pturbr = 0.;
  34. /*
  35. * reduce to the ecliptic
  36. */
  37. nd = lambda - node;
  38. lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
  39. sl = sin(incl)*sin(nd) + pturbb*radsec;
  40. beta = atan2(sl, pyth(sl));
  41. lograd = pturbr*2.30258509;
  42. rad *= 1. + lograd;
  43. lambda += 555.*radsec;
  44. beta -= 51.*radsec;
  45. motion *= radian*mrad*mrad/(rad*rad);
  46. semi = 98.47;
  47. mag = -8.93;
  48. helio();
  49. geo();
  50. }