home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / astronmy / strchart / patch / planet.dif < prev    next >
Encoding:
Text File  |  1989-03-23  |  17.6 KB  |  593 lines

  1. *** ../starchart/planet.c    Mon Sep 19 09:11:43 1988
  2. --- planet.c    Mon Sep 26 08:00:31 1988
  3. ***************
  4. *** 45,57 ****
  5.   #include <stdio.h>
  6.   #include <math.h>
  7.   
  8.   #ifndef SYSV
  9.   #include <sys/time.h>    /* for getting current GMT (generic Unix) */
  10.   #else
  11.   #include <time.h>    /* for getting current GMT (sysV version) */
  12.   #endif
  13.   
  14. ! #define CURYEAR    1987    /* default year -- needs to be maintained */
  15.   
  16.   #ifndef PLANETFILE
  17.   #define PLANETFILE "./planet.star"
  18. --- 45,62 ----
  19.   #include <stdio.h>
  20.   #include <math.h>
  21.   
  22. + #ifdef ST_MWC /* Mark Williams C for the Atari ST */
  23. + #define SYSV /* MWC is almost SYSV compatible */
  24. + #include <osbind.h> /* Needed for Cconws() and Crawcin() */
  25. + #endif /* ST_MWC */
  26.   #ifndef SYSV
  27.   #include <sys/time.h>    /* for getting current GMT (generic Unix) */
  28.   #else
  29.   #include <time.h>    /* for getting current GMT (sysV version) */
  30.   #endif
  31.   
  32. ! #define CURYEAR    1989    /* default year -- needs to be maintained */
  33.   
  34.   #ifndef PLANETFILE
  35.   #define PLANETFILE "./planet.star"
  36. ***************
  37. *** 68,73 ****
  38. --- 73,84 ----
  39.   #define MAGURA 590
  40.   #define MAGNEP 800
  41.   
  42. + #ifdef ST_MWC
  43. + #define daylight tt.tm_isdst
  44. + extern char *getenv(); /* used to see if we're running from the desktop */
  45. + struct tm_t *tt;
  46. + #endif /* ST_MWC */
  47.   double pie, rad;
  48.   double htod(), atof(), kepler(), truean();
  49.   double longi(), lati(), poly(), aint(), range();
  50. ***************
  51. *** 119,125 ****
  52. --- 130,138 ----
  53.       gettimeofday(&tv, &tz);
  54.       return(GMT1970 + tv.tv_sec/SECSPERDAY);
  55.   #else
  56. + #ifndef ST_MWC
  57.       long time();
  58. + #endif /* ST_MWC */
  59.       return(GMT1970 + (double)time((long *)0)/SECSPERDAY);
  60.   #endif
  61.       }
  62. ***************
  63. *** 201,207 ****
  64.       aa1 = (int) (year/100);
  65.       bb1 = 2 - aa1 + (int)(aa1/4);
  66.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  67. !     jd = jd  + day + 1720994.5;
  68.       if((year + month/100) > 1582.10) jd = jd + bb1;
  69.       return(jd);
  70.       }
  71. --- 214,220 ----
  72.       aa1 = (int) (year/100);
  73.       bb1 = 2 - aa1 + (int)(aa1/4);
  74.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  75. !     jd += day + 1720994.5;
  76.       if((year + month/100) > 1582.10) jd = jd + bb1;
  77.       return(jd);
  78.       }
  79. ***************
  80. *** 218,224 ****
  81. --- 231,243 ----
  82.       double N,D,epli,thapp,omeg;
  83.       double nu2,P,Q,S,V,W,ze,l1pert,epert,w1pert,apert;
  84.       double psi,H,G,eta,th;
  85. + #ifdef ST_MWC
  86. +     time_t now;
  87.   
  88. +     now = time((long) 0);
  89. +     tt = localtime(&now);
  90. + #endif /* ST_MWC */
  91.   #define WRITEMODE "w"
  92.   #define OPENFAIL 0
  93.       progname = argv[0];
  94. ***************
  95. *** 321,327 ****
  96.           RA = atan2(N,D)/rad;
  97.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  98.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  99. ! /* tansformation of coordinates on Mercury and output */
  100.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  101.           
  102.   /* Now start on Venus */
  103. --- 340,346 ----
  104.           RA = atan2(N,D)/rad;
  105.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  106.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  107. ! /* transformation of coordinates on Mercury and output */
  108.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  109.           
  110.   /* Now start on Venus */
  111. ***************
  112. *** 373,380 ****
  113.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  114.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  115.            +0.000006887 * cos((M5-M2-118.090)*rad)
  116. !          +0.000005172 * cos((M-M2-29.110)*rad)
  117. !          +0.000003620 * cos((5*M-4*M2-104.208)*rad)
  118.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  119.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  120.       r = r + radpert;
  121. --- 392,399 ----
  122.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  123.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  124.            +0.000006887 * cos((M5-M2-118.090)*rad)
  125. !          +0.000005172 * cos((M-M2-29.110)*rad);
  126. !     radpert+= 0.000003620 * cos((5*M-4*M2-104.208)*rad)
  127.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  128.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  129.       r = r + radpert;
  130. ***************
  131. *** 425,432 ****
  132.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  133.            +0.00607*cos((2*M5-M4-188.350)*rad)
  134.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  135. !          +0.00388*cos((M-2*M4+20.495)*rad)
  136. !          +0.00238*cos((M-M4+35.097)*rad)
  137.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  138.            +0.00177*cos((3*M4-M2-57.602)*rad)
  139.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  140. --- 444,451 ----
  141.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  142.            +0.00607*cos((2*M5-M4-188.350)*rad)
  143.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  144. !          +0.00388*cos((M-2*M4+20.495)*rad);
  145. !     lonpert+= 0.00238*cos((M-M4+35.097)*rad)
  146.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  147.            +0.00177*cos((3*M4-M2-57.602)*rad)
  148.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  149. ***************
  150. *** 445,452 ****
  151.       radpert+= 0.000007914*cos((3*M5-2*M4-139.737)*rad)
  152.            +0.000007004*cos((2*M5-3*M4-102.888)*rad)
  153.            +0.000006620*cos((M-2*M4+113.202)*rad)
  154. !          +0.000004930*cos((3*M5-3*M4-76.243)*rad)
  155. !          +0.000004693*cos((3*M-5*M4+190.603)*rad)
  156.            +0.000004571*cos((2*M-4*M4+244.702)*rad)
  157.            +0.000004409*cos((3*M5-M4-115.828)*rad);
  158.       r = r + radpert;
  159. --- 464,471 ----
  160.       radpert+= 0.000007914*cos((3*M5-2*M4-139.737)*rad)
  161.            +0.000007004*cos((2*M5-3*M4-102.888)*rad)
  162.            +0.000006620*cos((M-2*M4+113.202)*rad)
  163. !          +0.000004930*cos((3*M5-3*M4-76.243)*rad);
  164. !     radpert+= 0.000004693*cos((3*M-5*M4+190.603)*rad)
  165.            +0.000004571*cos((2*M-4*M4+244.702)*rad)
  166.            +0.000004409*cos((3*M5-M4-115.828)*rad);
  167.       r = r + radpert;
  168. ***************
  169. *** 507,513 ****
  170.       -(0.003083 + 0.000275*nu2 - 0.000489*nu2*nu2)*sin(2*V)
  171.       +0.002472*sin(W)
  172.       +0.013619*sin(ze)
  173. !     +0.018472*sin(2*ze)
  174.       +0.006717*sin(3*ze)
  175.       +0.002775*sin(4*ze)
  176.       +(0.007275 - 0.001253*nu2)*sin(ze)*sin(Q)
  177. --- 526,533 ----
  178.       -(0.003083 + 0.000275*nu2 - 0.000489*nu2*nu2)*sin(2*V)
  179.       +0.002472*sin(W)
  180.       +0.013619*sin(ze)
  181. !     +0.018472*sin(2*ze);
  182. ! l1pert = l1pert
  183.       +0.006717*sin(3*ze)
  184.       +0.002775*sin(4*ze)
  185.       +(0.007275 - 0.001253*nu2)*sin(ze)*sin(Q)
  186. ***************
  187. *** 519,525 ****
  188.       -(0.035681 + 0.001208*nu2)*sin(ze)*cos(Q)
  189.       -0.004261*sin(2*ze)*cos(Q)
  190.       +0.002178*cos(Q)
  191. !     +(-0.006333 + 0.001161*nu2)*cos(ze)*cos(Q)
  192.       -0.006675*cos(2*ze)*cos(Q)
  193.       -0.002664*cos(3*ze)*cos(Q)
  194.       -0.002572*sin(ze)*sin(2*Q)
  195. --- 539,546 ----
  196.       -(0.035681 + 0.001208*nu2)*sin(ze)*cos(Q)
  197.       -0.004261*sin(2*ze)*cos(Q)
  198.       +0.002178*cos(Q)
  199. !     +(-0.006333 + 0.001161*nu2)*cos(ze)*cos(Q);
  200. ! l1pert = l1pert
  201.       -0.006675*cos(2*ze)*cos(Q)
  202.       -0.002664*cos(3*ze)*cos(Q)
  203.       -0.002572*sin(ze)*sin(2*Q)
  204. ***************
  205. *** 532,538 ****
  206.       -.0006764*sin(ze)*sin(Q)
  207.       -.0001110*sin(2*ze)*sin(Q)
  208.       -.0000224*sin(3*ze)*sin(Q)
  209. !     -.0000204*sin(Q)
  210.       +(.0001284 + .0000116*nu2)*cos(ze)*sin(Q)
  211.       +.0000188*cos(2*ze)*sin(Q)
  212.       +(.0001460 + .0000130*nu2)*sin(ze)*cos(Q)
  213. --- 553,560 ----
  214.       -.0006764*sin(ze)*sin(Q)
  215.       -.0001110*sin(2*ze)*sin(Q)
  216.       -.0000224*sin(3*ze)*sin(Q)
  217. !     -.0000204*sin(Q);
  218. ! epert = epert
  219.       +(.0001284 + .0000116*nu2)*cos(ze)*sin(Q)
  220.       +.0000188*cos(2*ze)*sin(Q)
  221.       +(.0001460 + .0000130*nu2)*sin(ze)*cos(Q)
  222. ***************
  223. *** 544,550 ****
  224.       +.0000508*cos(3*ze)*cos(Q)
  225.       +.0000230*cos(4*ze)*cos(Q)
  226.       +.0000108*cos(5*ze)*cos(Q)
  227. !     -(.0000956 + .0000073*nu2)*sin(ze)*sin(2*Q)
  228.       +.0000448*sin(2*ze)*sin(2*Q)
  229.       +.0000137*sin(3*ze)*sin(2*Q)
  230.       +(-.0000997 + .0000108*nu2)*cos(ze)*sin(2*Q)
  231. --- 566,573 ----
  232.       +.0000508*cos(3*ze)*cos(Q)
  233.       +.0000230*cos(4*ze)*cos(Q)
  234.       +.0000108*cos(5*ze)*cos(Q)
  235. !     -(.0000956 + .0000073*nu2)*sin(ze)*sin(2*Q);
  236. ! epert = epert
  237.       +.0000448*sin(2*ze)*sin(2*Q)
  238.       +.0000137*sin(3*ze)*sin(2*Q)
  239.       +(-.0000997 + .0000108*nu2)*cos(ze)*sin(2*Q)
  240. ***************
  241. *** 554,560 ****
  242.       +(-.0000956 +.0000099*nu2)*sin(ze)*cos(2*Q)
  243.       +.0000490*sin(2*ze)*cos(2*Q)
  244.       +.0000158*sin(3*ze)*cos(2*Q)
  245. !     +.0000179*cos(2*Q)
  246.       +(.0001024 + .0000075*nu2)*cos(ze)*cos(2*Q)
  247.       -.0000437*cos(2*ze)*cos(2*Q)
  248.       -.0000132*cos(3*ze)*cos(2*Q);
  249. --- 577,584 ----
  250.       +(-.0000956 +.0000099*nu2)*sin(ze)*cos(2*Q)
  251.       +.0000490*sin(2*ze)*cos(2*Q)
  252.       +.0000158*sin(3*ze)*cos(2*Q)
  253. !     +.0000179*cos(2*Q);
  254. ! epert = epert
  255.       +(.0001024 + .0000075*nu2)*cos(ze)*cos(2*Q)
  256.       -.0000437*cos(2*ze)*cos(2*Q)
  257.       -.0000132*cos(3*ze)*cos(2*Q);
  258. ***************
  259. *** 562,568 ****
  260.   w1pert = (0.007192 - 0.003147*nu2)*sin(V)
  261.       +(-0.020428 - 0.000675*nu2 + 0.000197*nu2*nu2)*cos(V)
  262.       +(0.007269 + 0.000672*nu2)*sin(ze)*sin(Q)
  263. !     -0.004344*sin(Q)
  264.       +0.034036*cos(ze)*sin(Q)
  265.       +0.005614*cos(2*ze)*sin(Q)
  266.       +0.002964*cos(3*ze)*sin(Q)
  267. --- 586,593 ----
  268.   w1pert = (0.007192 - 0.003147*nu2)*sin(V)
  269.       +(-0.020428 - 0.000675*nu2 + 0.000197*nu2*nu2)*cos(V)
  270.       +(0.007269 + 0.000672*nu2)*sin(ze)*sin(Q)
  271. !     -0.004344*sin(Q);
  272. ! w1pert = w1pert
  273.       +0.034036*cos(ze)*sin(Q)
  274.       +0.005614*cos(2*ze)*sin(Q)
  275.       +0.002964*cos(3*ze)*sin(Q)
  276. ***************
  277. *** 573,579 ****
  278.       -0.006603*cos(ze)*cos(Q)
  279.       -0.005356*sin(ze)*sin(2*Q)
  280.       +0.002722*sin(2*ze)*sin(2*Q)
  281. !     +0.004483*cos(ze)*sin(2*Q)
  282.       -0.002642*cos(2*ze)*sin(2*Q)
  283.       +0.004403*sin(ze)*cos(2*Q)
  284.       -0.002536*sin(2*ze)*cos(2*Q)
  285. --- 598,605 ----
  286.       -0.006603*cos(ze)*cos(Q)
  287.       -0.005356*sin(ze)*sin(2*Q)
  288.       +0.002722*sin(2*ze)*sin(2*Q)
  289. !     +0.004483*cos(ze)*sin(2*Q);
  290. ! w1pert = w1pert
  291.       -0.002642*cos(2*ze)*sin(2*①)
  292.       +0.004403*sin(ze)*cos(2*Q)
  293.       -0.002536*sin(2*ze)*cos(2*Q)
  294. ***************
  295. *** 591,597 ****
  296.       +.000693*cos(2*ze)
  297.       +.000312*cos(3*ze)
  298.       +.000147*cos(4*ze)
  299. !     +.000299*sin(ze)*sin(Q)
  300.       +.000      +.000      +.000      +.000      +.000-
  301.   #define MAGURA 590
  302.   #define MAGNEP 800
  303.   
  304. + #ifdef ST_MWC
  305. + #define daylight tt.tm_isdst
  306. + extern char *getenv(); /* used to see if we're running from the desktop */
  307. + struct tm_t *tt;
  308. + #endif /* ST_MWC */
  309.   double pie, rad;
  310.   double htod(), atof(), kepler(), truean();
  311.   double longi(), lati(), poly(), aint(), range();
  312. ***************
  313. *** 119,125 ****
  314. --- 130,138 ----
  315.       gettimeofday(&tv, &tz);
  316.       return(GMT1970 + tv.tv_sec/SECSPERDAY);
  317.   #else
  318. + #ifndef ST_MWC
  319.       long time();
  320. + #endif /* ST_MWC */
  321.       return(GMT1970 + (double)time((long *)0)/SECSPERDAY);
  322.   #endif
  323.       }
  324. ***************
  325. *** 201,207 ****
  326.       aa1 = (int) (year/100);
  327.       bb1 = 2 - aa1 + (int)(aa1/4);
  328.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  329. !     jd = jd  + day + 1720994.5;
  330.       if((year + month/100) > 1582.10) jd = jd + bb1;
  331.       return(jd);
  332.       }
  333. --- 214,220 ----
  334.       aa1 = (int) (year/100);
  335.       bb1 = 2 - aa1 + (int)(aa1/4);
  336.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  337. !     jd += day + 1720994.5;
  338.       if((year + month/100) > 1582.10) jd = jd + bb1;
  339.       return(jd);
  340.       }
  341. ***************
  342. *** 218,224 ****
  343. --- 231,243 ----
  344.       double N,D,epli,thapp,omeg;
  345.       double nu2,P,Q,S,V,W,ze,l1pert,epert,w1pert,apert;
  346.       double psi,H,G,eta,th;
  347. + #ifdef ST_MWC
  348. +     time_t now;
  349.   
  350. +     now = time((long) 0);
  351. +     tt = localtime(&now);
  352. + #endif /* ST_MWC */
  353.   #define WRITEMODE "w"
  354.   #define OPENFAIL 0
  355.       progname = argv[0];
  356. ***************
  357. *** 321,327 ****
  358.           RA = atan2(N,D)/rad;
  359.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  360.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  361. ! /* tansformation of coordinates on Mercury and output */
  362.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  363.           
  364.   /* Now start on Venus */
  365. --- 340,346 ----
  366.           RA = atan2(N,D)/rad;
  367.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  368.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  369. ! /* transformation of coordinates on Mercury and output */
  370.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  371.           
  372.   /* Now start on Venus */
  373. ***************
  374. *** 373,380 ****
  375.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  376.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  377.            +0.000006887 * cos((M5-M2-118.090)*rad)
  378. !          +0.000005172 * cos((M-M2-29.110)*rad)
  379. !          +0.000003620 * cos((5*M-4*M2-104.208)*rad)
  380.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  381.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  382.       r = r + radpert;
  383. --- 392,399 ----
  384.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  385.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  386.            +0.000006887 * cos((M5-M2-118.090)*rad)
  387. !          +0.000005172 * cos((M-M2-29.110)*rad);
  388. !     radpert+= 0.000003620 * cos((5*M-4*M2-104.208)*rad)
  389.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  390.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  391.       r = r + radpert;
  392. ***************
  393. *** 425,432 ****
  394.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  395.            +0.00607*cos((2*M5-M4-188.350)*rad)
  396.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  397. !          +0.00388*cos((M-2*M4+20.495)*rad)
  398. !          +0.00238*cos((M-M4+35.097)*rad)
  399.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  400.            +0.00177*cos((3*M4-M2-57.602)*rad)
  401.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  402. --- 444,451 ----
  403.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  404.            +0.00607*cos((2*M5-M4-188.350)*rad)
  405.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  406. !          +0.00388*cos((M-2*M4+20.495)*rad);
  407. !     lonpert+= 0.00238*cos((M-M4+35.097)*rad)
  408.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  409.            +0.00177*cos((3*M4-M2-57.602)*rad)
  410.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  411. ***************
  412. *** 445,452sin(4*ze)*sin(2*Q)
  413. ***************
  414. *** 707,713 ****
  415.       +.0000467*cos(3*psi)*sin(2*Q)
  416.       -.0000490*cos(2*Q)
  417.       -(.0002842 + .0000279*nu2)*sin(ze)*cos(2*Q)
  418. !     +(.0000128 + .0000226*nu2)*sin(2*ze)*cos(2*Q)
  419.       +.0000224*sin(3*ze)*cos(2*Q)
  420.       +(-.0001594 + .0000282*nu2)*cos(ze)*cos(2*Q)
  421.       +(.0002162 - .0000207*nu2)*cos(2*ze)*cos(2*Q)
  422. --- 740,747 ----
  423.       +.0000467*cos(3*psi)*sin(2*Q)
  424.       -.0000490*cos(2*Q)
  425.       -(.0002842 + .0000279*nu2)*sin(ze)*cos(2*Q)
  426. !     +(.0000128 + .0000226*nu2)*sin(2*ze)*cos(2*Q);
  427. ! epert = epert
  428.       +.0000224*sin(3*ze)*cos(2*Q)
  429.       +(-.0001594 + .0000282*nu2)*cos(ze)*cos(2*Q)
  430.       +(.0002162 - .0000207*nu2)*cos(2*ze)*cos(2*Q)
  431. ***************
  432. *** 716,722 ****
  433.       +.0000343*cos(4*ze)*cos(2*Q)
  434.       +.0000469*sin(3*psi)*cos(2*Q)
  435.       -.0000242*cos(3*psi)*cos(2*Q)
  436. !     -.0000205*sin(ze)*sin(3*Q)
  437.       +.0000262*sin(3*ze)*sin(3*Q)
  438.       +.0000208*cos(ze)*cos(3*Q)
  439.       -.0000271*cos(3*ze)*cos(3*Q)
  440. --- 750,757 ----
  441.       +.0000343*cos(4*ze)*cos(2*Q)
  442.       +.0000469*sin(3*psi)*cos(2*Q)
  443.       -.0000242*cos(3*psi)*cos(2*Q)
  444. !     -.0000205*sin(ze)*sin(3*Q);
  445. ! epert = epert
  446.       +.0000262*sin(3*ze)*sin(3*Q)
  447.       +.0000208*cos(ze)*cos(3*Q)
  448.       -.0000271*cos(3*ze)*cos(3*Q)
  449. ***************
  450. *** 728,734 ****
  451.       -0.007075*sin(ze)
  452.       -0.075825*sin(ze)*sin(Q)
  453.       -0.024839*sin(2*ze)*sin(Q)
  454. !     -0.008631*sin(3*ze)*sin(Q)
  455.       -0.072586*cos(Q)
  456.       -0.150383*cos(ze)*cos(Q)
  457.       +0.026897*cos(2*ze)*cos(Q)
  458. --- 763,770 ----
  459.       -0.007075*sin(ze)
  460.       -0.075825*sin(ze)*sin(Q)
  461.       -0.024839*sin(2*ze)*sin(Q)
  462. !     -0.008631*sin(3*ze)*sin(Q);
  463. ! w1pert = w1pert
  464.       -0.072586*cos(Q)
  465.       -0.150383*cos(ze)*cos(Q)
  466.       +0.026897*cos(2*ze)*cos(Q)
  467. ***************
  468. *** 737,743 ****
  469.       -(0.013597 +0.001719*nu2)*sin(ze)*sin(2*Q)
  470.       +(-0.007742 + 0.001517*nu2)*cos(ze)*sin(2*Q)
  471.       +(0.013586 - 0.001375*nu2)*cos(2*ze)*sin(2*Q)
  472. !     +(-0.013667 + 0.001239*nu2)*sin(ze)*cos(2*Q)
  473.       +0.011981*sin(2*ze)*cos(2*Q)
  474.       +(0.014861 + 0.001136*nu2)*cos(ze)*cos(2*Q)
  475.       -(0.013064 + 0.001628*nu2)*cos(2*ze)*cos(2*Q);
  476. --- 773,780 ----
  477.       -(0.013597 +0.001719*nu2)*sin(ze)*sin(2*Q)
  478.       +(-0.007742 + 0.001517*nu2)*cos(ze)*sin(2*Q)
  479.       +(0.013586 - 0.001375*nu2)*cos(2*ze)*sin(2*Q)
  480. !     +(-0.013667 + 0.001239*nu2)*sin(ze)*cos(2*Q);
  481. ! w1pert = w1pert
  482.       +0.011981*sin(2*ze)*cos(2*Q)
  483.       +(0.014861 + 0.001136*nu2)*cos(ze)*cos(2*Q)
  484.       -(0.013064 + 0.001628*nu2)*cos(2*ze)*cos(2*Q);
  485. ***************
  486. *** 751,757 ****
  487.   apert = .000572*sin(V) -.001590*sin(2*ze)*cos(Q)
  488.       +.002933*cos(V) -.000647*sin(3*ze)*cos(Q)
  489.       +.033629*cos(ze) -.000344*sin(4*ze)*cos(Q)
  490. !     -.003081*cos(2*ze) +.002885*cos(ze)*cos(Q)
  491.       -.001423*cos(3*ze) +(.002172 + .000102*nu2)*cos(2*ze)*cos(Q)
  492.       -.000671*cos(4*ze) +.000296*cos(3*ze)*cos(Q)
  493.       -.000320*cos(5*ze) -.000267*sin(2*ze)*sin(2*Q);
  494. --- 788,795 ----
  495.   apert = .000572*sin(V) -.001590*sin(2*ze)*cos(Q)
  496.       +.002933*cos(V) -.000647*sin(3*ze)*cos(Q)
  497.       +.033629*cos(ze) -.000344*sin(4*ze)*cos(Q)
  498. !     -.003081*cos(2*ze) +.002885*cos(ze)*cos(Q);
  499. ! apert = apert
  500.       -.001423*cos(3*ze) +(.002172 + .000102*nu2)*cos(2*ze)*cos(Q)
  501.       -.000671*cos(4*ze) +.000296*cos(3*ze)*cos(Q)
  502.       -.000320*cos(5*ze) -.000267*sin(2*ze)*sin(2*Q);
  503. ***************
  504. *** 763,769 ****
  505.       -.000393*sin(3*ze)*sin(Q)
  506.       -.000228*sin(4*ze)*sin(Q)
  507.       +.002138*cos(ze)*sin(Q)
  508. !     -.000999*cos(2*ze)*sin(Q)
  509.       -.000642*cos(3*ze)*sin(Q)
  510.       -.000325*cos(4*ze)*sin(Q)
  511.       -.000890*cos(Q)
  512. --- 801,808 ----
  513.       -.000393*sin(3*ze)*sin(Q)
  514.       -.000228*sin(4*ze)*sin(Q)
  515.       +.002138*cos(ze)*sin(Q)
  516. !     -.000999*cos(2*ze)*sin(Q);
  517. ! apert = apert
  518.       -.000642*cos(3*ze)*sin(Q)
  519.       -.000325*cos(4*ze)*sin(Q)
  520.       -.000890*cos(Q)
  521. ***************
  522. *** 772,778 ****
  523.       -.000856*sin(ze)*cos(2*Q)
  524.       +.000441*sin(2*ze)*cos(2*Q)
  525.       +.000296*cos(2*ze)*cos(2*Q)
  526. !     +.000211*cos(3*ze)*cos(2*Q)
  527.       -.000427*sin(ze)*sin(3*Q)
  528.       +.000398*sin(3*ze)*sin(3*Q)
  529.       +.000344*cos(ze)*cos(3*Q)
  530. --- 811,818 ----
  531.       -.000856*sin(ze)*cos(2*Q)
  532.       +.000441*sin(2*ze)*cos(2*Q)
  533.       +.000296*cos(2*ze)*cos(2*Q)
  534. !     +.000211*cos(3*ze)*cos(2*Q);
  535. ! apert = apert
  536.       -.000427*sin(ze)*sin(3*Q)
  537.       +.000398*sin(3*ze)*sin(3*Q)
  538.       +.000344*cos(ze)*cos(3*Q)
  539. ***************
  540. *** 1002,1009 ****
  541.       +.001051*cos(2*th);
  542.   trans(r,b,ll,Stheta,Sr,epli, MAGNEP, "PN", "Neptune");
  543.   
  544.   putchar('\n');
  545. ! close(logfile);
  546.   exit(0);
  547.   } /* end of program main */
  548.   
  549. --- 1042,1061 ----
  550.       +.001051*cos(2*th);
  551.   trans(r,b,ll,Stheta,Sr,epli, MAGNEP, "PN", "Neptune");
  552.   
  553. + #ifdef ST_MWC
  554. + Cconws("\r\n");
  555. + #else /* !ST_MWC */
  556.   putchar('\n');
  557. ! #endif /* ST_MWC */
  558. ! fclose(logfile);
  559. ! #ifdef ST_MWC /* We want to hold the screen if invoked from the GEM desktop; */
  560. !            /* the desktop doesn't usually set any environment variables, */
  561. !            /* and if getenv() does find anything, it's probably empty */
  562. ! if (((getenv("PATH")) == 0) || (strlen(getenv("PATH")) == 0)) {
  563. !      Cconws("press any key to continue: "); /* Hold screen if desktop */
  564. !      i = Crawcin(); /* Read raw character input */
  565. ! }
  566. ! #endif /* ST_MWC */
  567.   exit(0);
  568.   } /* end of program main */
  569.   
  570. ***************
  571. *** 1023,1031 ****
  572. --- 1075,1089 ----
  573.   double aint(z)
  574.       double z;
  575.   {
  576. + #ifdef ST_MWC /* In Mark Williams C ints are 16 bits long, so use longs */
  577. +     long trunk;
  578. +     
  579. +     trunk = (long)z;
  580. + #else /* !ST_MWC */
  581.       int trunk;
  582.       
  583.       trunk = (int)z;
  584. + #endif /* ST_MWC */
  585.       z = (double) trunk;
  586.       return(z);
  587.   }
  588.