home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG041.ARK / MOONLOC5.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  5KB  |  193 lines

  1. 500 DIM F(31), V(31), Y(31), Q(31), S(31)
  2. 560 P5=2.0000000000*3.1415926535
  3. 570 D5=360.0000000000/P5
  4. 580 R5=P5/360.0000000000
  5. 582 DEF FNA(X)=INT(X*D5*10+.5)/10
  6. 584 DEF FNB(X)=(X-INT(X))*P5
  7. 585 PRINT "WHAT ARE THE STATION CALL LETTERS";
  8. 586 INPUT W$
  9. 590 PRINT "WHAT IS YOUR LATITUDE IN DEGREES, MINUTES";
  10. 600 INPUT L5,U5
  11. 610 PRINT "WHAT IS YOUR LONGITUDE IN DEGREES, MINUTES";
  12. 620 INPUT L6,U6
  13. 630 LET L5=(L5+U5/60)*R5
  14. 640 LET L6=(L6+U6/60)*R5
  15. 650 PRINT "WHAT IS THE DESIRED PRINTING INCREMENT IN MINUTES";
  16. 660 INPUT I
  17. 670 PRINT "DO YOU ONLY WANT PRINTOUT WHEN THE MOON IS NEAR THE HORIZON";
  18. 690 INPUT B$
  19. 700 IF B$="YES" THEN 730
  20. 710 LET I6=100
  21. 720 GOTO 800
  22. 730 PRINT "BELOW WHAT ELEVATION IN DEGREES DO YOU WANT PRINTOUT TO OCCUR";
  23. 740 INPUT I6
  24. 750 PRINT "WHAT ARE THE GMT MONTH,DAY,YEAR DESIRED":
  25. 760 FOR N=1 TO 31
  26. 770 INPUT F(N),V(N),Y(N)
  27. 780 IF F(N)=0 THEN 860
  28. 785 NEXT N
  29. 790 GOTO 760
  30. 800 PRINT "WHAT ARE THE GMT MONTH,DAY,YEAR,TIME BEGINNING,TIME ENDING"
  31. 820 FOR N=1 TO 31
  32. 830 INPUT F(N),V(N),Y(N),Q(N),S(N)
  33. 840 IF F(N)=0 THEN 860
  34. 845 NEXT N
  35. 850 GOTO 820
  36. 860 LET N5=N-1
  37. 870 FOR N=1 TO N5
  38. 880 IF B$="YES" THEN 900
  39. 890 GOTO 930
  40. 900 E1=2400
  41. 910 B=0
  42. 920 GOTO 950
  43. 930 E1=S(N)
  44. 940 B=Q(N)
  45. 950 M=F(N)
  46. 960 D=V(N)
  47. 970 Y=Y(N)
  48. 980 Y1=Y-(INT(Y/100)*100)
  49. 990 PRINT
  50. 1000 PRINT
  51. 1010 PRINT "POSITION OF MOON ON ";M;"/";D;"/";Y1;"GMT FROM";W$
  52. 1020 PRINT
  53. 1030 PRINT "  GMT"," AZ"," EL"," GHA"," DEC"
  54. 1040 PRINT "  ---"," --"," --"," ---"," ---"
  55. 1050 PRINT
  56. 1060 I1=2
  57. 1080 IF M>=3 THEN 1160
  58. 1090 IF INT((Y-1853)/4)<11 THEN 1120
  59. 1100 C1=-1
  60. 1110 GOTO 1130
  61. 1120 C1=0
  62. 1130 J1=365*(Y-1853)+D+30*(M+9)+INT((M+10)/2)
  63. 1140 J2=INT((Y-1853)/4)+1+C1
  64. 1150 GOTO 1270
  65. 1160 IF INT((Y-1852)/4)<11 THEN 1190
  66. 1170 LET C1=-1
  67. 1180 GOTO 1200
  68. 1190 LET C1=0
  69. 1200 IF M=9 THEN 1240
  70. 1210 IF M=11 THEN 1240
  71. 1220 C2=0
  72. 1230 GOTO 1250
  73. 1240 C2=1
  74. 1250 J1=365*(Y-1852)+D+30*(M-3)+INT((M-2)/2)
  75. 1260 J2=INT((Y-1852)/4)+C1+C2
  76. 1270 J=J1+J2
  77. 1280 T1=J-17472.5
  78. 1290 D9=(B-INT(B/100)*100)+INT(B/100)*60
  79. 1300 D6=(E1-INT(E1/100)*100)+INT(E1/100)*60
  80. 1310 D7=D9-D6
  81. 1320 D8=D7-I
  82. 1330 IF D7>0 THEN 1350
  83. 1340 GOTO 1380
  84. 1350 IF D8>=0 THEN 2220
  85. 1360 B=E1
  86. 1380 T=(B-INT(B/100)*100)/1440+INT(B/100)*24
  87. 1390 T5=T1+T
  88. 1400 K1=FNB(.751213+.036601102*T5)
  89. 1410 K2=FNB(.822513+.0362916457*T5)
  90. 1420 K3=FNB(.995766+.00273777852*T5)
  91. 1430 K4=FNB(.974271+.0338631922*T5)
  92. 1440 K5=FNB(.0312525+.0367481957*T5)
  93. 1450 L8=K1+.658*R5*SIN(2*K4)+6.289*R5*SIN(K2)
  94. 1460 L8=L8-1.274*R5*SIN(K2-2*K4)-.186*R5*SIN(K2-2*K4)-.186*R5*SIN(K3)
  95. 1470 L8=L8+.214*R5*SIN(2*K2)-.114*R5*SIN(2*K5)
  96. 1480 L8=L8-.059*R5*SIN(2*K2-2*K4)-.057*R5*SIN(K2+K3-2*K4)
  97. 1490 K6=K5+.6593*R5*SIN(2*K4)+6.2303*R5*SIN(K2)-1.272*R5*SIN(K2-2*K4)
  98. 1500 L7=5.144*R5*SIN(K6)-.146*R5*SIN(K5-2*K4)
  99. 1520 D1=COS(L7)*SIN(L8)*.397821+SIN(L7)*.917463
  100. 1530 D1=ATN(D1/(SQR(1-D1^2)))
  101. 1531 G1=50+.5+((D1)/(.792))*D5
  102. 1532 G2=80+((D1)/(.808))*D5
  103. 1533 G3=141.5-((D1)*(.738)*D5)
  104. 1534 G4=170.5-((D1)*(.857)*D5)
  105. 1540 A2=COS(L7)*COS(L8)/COS(D1)
  106. 1550 A1=(COS(L7)*SIN(L8)*.917463-SIN(L7)*.397821)/COS(D1)
  107. 1560 LET A=ATN(A1/A2)
  108. 1570 GOSUB 1870
  109. 1580 R1=A
  110. 1590 L1=.065709822*T1
  111. 1600 L=T*24*1.002738+6.646055+(L1-INT(L1/24)*24
  112. 1610 L=(L-INT(L/24)*24)
  113. 1630 G=(L/24)*P5-R1
  114. 1640 IF G<P5 THEN 1670
  115. 1650 G=G-P5
  116. 1660 GOTO 1710
  117. 1670 IF G<0 THEN 1690
  118. 1680 GOTO 1710
  119. 1690 G=G+P5
  120. 1710 H=L6-G
  121. 1730 E3=COS(L5)*COS(H)*COS(D1)+SIN(D1)*SIN(L5)
  122. 1740 E2=SQR(1-(E3*E3))
  123. 1750 E=ATN(E3/E2)
  124. 1755 F=ATN(E3/E2)
  125. 1760 IF E<0 THEN 2178
  126. 1770 IF E>I6*R5 THEN 2178
  127. 1790 A2=SIN(D1)/(COS(L5)*COS(F))
  128. 1800 A2=A2-(SIN(L5)/COS(L5))*(SIN(F)/COS(F))
  129. 1810 A1=SIN(L5)*SIN(D1)+COS(L5)*COS(D1)*COS(H)
  130. 1820 A1=(SIN(H)*COS(D1))/(SQR(1-A1^2))
  131. 1830 A=ATN(A1/A2)
  132. 1840 GOSUB 1870
  133. 1850 GOTO 2020
  134. 1870 IF A=0 THEN 1890
  135. 1880 GOTO 1930
  136. 1890 IF A2<0 THEN 1910
  137. 1900 GOTO 2010
  138. 1910 A=P5/2
  139. 1920 GOTO 2010
  140. 1930 IF A>0THEN 1990
  141. 1940 IF A2<0 THEN 1970
  142. 1950 A=P5+A
  143. 1960 GOTO 2010
  144. 1970 A=P5+(A-P5/2)
  145. 1980 GOTO 2010
  146. 1990 IF A2>=0 THEN 2010
  147. 2000 A=A+P5/2
  148. 2010 RETURN
  149. 2020 IF (T-I1)>(2*I)/1440 THEN 2040
  150. 2030 GOTO 2050
  151. 2040 PRINT
  152. 2050 IF INT(B+.5)>9 THEN 2080
  153. 2060 S$="   "
  154. 2070 GOTO 2142
  155. 2080 IF INT(B+.5)>99 THEN 2110
  156. 2090 S$="  "
  157. 2100 GOTO 2142
  158. 2110 IF INT(B+.5)>999 THEN 2140
  159. 2120 S$=" "
  160. 2130 GOTO 2142
  161. 2140 S$=""
  162. 2142 Z1=FNA(A)
  163. 2144 Z2=FNA(E)
  164. 2146 Z3=FNA(G)
  165. 2148 Z4=FNA(D1)
  166. 2150 IF Z4<0 THEN 2163
  167. 2151 IF Z3<G1 THEN 2163
  168. 2152 IF Z3>G2 THEN 2154
  169. 2153 GOTO 2157
  170. 2154 IF Z3<G3 THEN 2159
  171. 2155 IF Z3>G4 THEN 2163
  172. 2156 GOTO 2161
  173. 2157 Y$="U"
  174. 2158 GOTO 2170
  175. 2159 Y$="W"
  176. 2160 GOTO 2170
  177. 2161 Y$="J"
  178. 2162 GOTO 2170
  179. 2163 Y$=" "
  180. 2170 PRINT S$;STR$(INT(B+.5)),Z1,Z2,Z3,Z4;Y$
  181. 2180 Z=(B-INT(B/100)*100)-60
  182. 2190 IF Z<0 THEN 1290
  183. 2200 B=INT(B/100)*100+100+Z
  184. 2210 GOTO 1290
  185. 2220 NEXT N
  186. 2230 N=0
  187. 2240 PRINT
  188. 2260 PRINT
  189. 2270 PRINT "DO YOU WANT MORE INFORMATION":
  190. 2280 INPUT D$
  191. 2290 IF D$="YES" THEN 560
  192. 2300 END
  193.