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 / MOONLOC2.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  3KB  |  119 lines

  1. 100    DATA 37,34,122,18
  2. 110    DATA 15
  3. 120    REM THIS PROGRAM CALCULATES MOON AIMING DATA FROM A SPECIFIED
  4. 130    REM QTH AT SELECTED TIME INTERVALS DURING THE HOUR.
  5. 140    REM
  6. 150    REM DATA REQUIREMENTS ARE AS FOLLOWS:
  7. 160    REM
  8. 170    REM LINE 100 - LATITUDE DEGREES, LATITUDE MINUTES,
  9. 180    REM           LONGITUDE DEGREES, LONGITUDE MINUTES
  10. 190    REM
  11. 200    REM LINE 110 - TIME INTERVAL FOR CALCULATIONS IN MINUTES
  12. 210    REM
  13. 220    REM LINE 1270--ALMANAC DATA CONSISTING OF THE TIME, GHA DEGREES
  14. 230    REM           GHA MINUTES, DECLINATION DEGREES AND DECLINATION
  15. 240    REM           MINUTES
  16. 250    REM
  17. 260    REM        DATA MUST BE GIVEN FOR BOTH THE BEGINNING AND
  18. 270    REM        END OF THE HOUR.  THAT IS, IF AIMING DATA IS
  19. 280    REM        DESIRED FOR HOURS BEGINNING 0900,1000, AND 1100
  20. 290    REM        YOU MUST SHOW DATA FOR 0900,1000,1100 AND 1200
  21. 300    REM
  22. 310    REM TO INDICATE THE END OF THE HOURLY DATA INCLUDE A SINGLE
  23. 320    REM DATA LINE WITH A ONE, A TWO FOR FINISHED MONTH
  24. 330    REM WITH THIS METHOD A MONTH AT A TIME CAN BE DONE
  25. 340    REM
  26. 350    LET R=1.74533E-02
  27. 360    LET P1=180*R
  28. 370    LET P3=360*R
  29. 380    READ L3,L4
  30. 390    LET L1=(L3+L4/60)*R
  31. 400    READ L3,L4
  32. 410    LET L2=(L3+L4/60)*R
  33. 420    LET L3=SIN(L1)
  34. 430    LET L4=COS(L1)
  35. 440    READ J1
  36. 450    LET J=60/J1
  37. 460    PRINT
  38. 470    PRINT
  39. 480    PRINT
  40. 490    PRINT "MOON AIMING DATA SPECIFICALLY PREPARED FOR W6PO"
  41. 500    PRINT
  42. 510    PRINT "MINIMUM AZIMUTH";
  43. 520    INPUT Z1
  44. 530    PRINT "MAXIMUM AZIMUTH";
  45. 540    INPUT Z2
  46. 550    PRINT "MINIMUM ELEVATION";
  47. 560    INPUT M
  48. 570    PRINT "MAXIMUM ELEVATION";
  49. 580    INPUT N
  50. 590    PRINT
  51. 600    PRINT
  52. 610    PRINT "DATE";
  53. 620    INPUT X
  54. 630    PRINT
  55. 640    PRINT
  56. 650    PRINT "GMT","AZIMUTH","ELEVATION"
  57. 660    PRINT
  58. 670    READ B
  59. 680    READ B1,B2,B3,B4
  60. 690    LET G1=(B1+B2/60)*R
  61. 700    LET D1=(B3+B4/60)*R
  62. 710    READ B5
  63. 720    IF B5=1 THEN 590
  64. 730    IF B5=2 THEN 2000
  65. 740    IF B5=3 THEN 660
  66. 750    READ B1,B2,B3,B4
  67. 760    LET G2=(B1+B2/60)*R
  68. 770    LET D2=(B3+B4/60)*R
  69. 780    LET G0=(G2-G1)/J
  70. 790    IF G0>0 THEN 810
  71. 800    LET G0=(G2+P3-G1)/J
  72. 810    LET D0=D2-D1/J
  73. 820    LET G=G1
  74. 830    LET D=D1
  75. 840    FOR I=0 TO 59 STEP J1
  76. 850    LET D3=SIN(D)
  77. 860    LET D4=COS(D)
  78. 870    LET H=L2-G
  79. 880    IF H-P1<0 THEN 920
  80. 890    IF H-P1=0 THEN 940
  81. 900    LET H=P3-H
  82. 910    GOTO 940
  83. 920    IF H+P1 >= 0 THEN 940
  84. 930    LET H=P3+H
  85. 940    LET A=0
  86. 950    LET E=0
  87. 960    LET E3=L3*D3+L4*D4*COS(H)
  88. 970    IF E3<0 THEN 1110
  89. 980    LET E4=SQR(1-E3^2)
  90. 990    LET A3=SIN(H)*D4/E4
  91. 1000    LET A4=SQR(1-A3^2)
  92. 1010    LET A=ATN(A3/A4)
  93. 1020    LET E0=E3/E4-4/(240*E4)
  94. 1030    IF E0 <= 0 THEN 1170
  95. 1040    LET E=ATN(E0)/R
  96. 1050    LET E=INT(10*E+.5)/10
  97. 1060    IF L3*E3-D3>0 THEN 1100
  98. 1070    IF A >= 0 THEN 1110
  99. 1080    LET A=P3+A
  100. 1090    GOTO 1110
  101. 1100    LET A=P1-A
  102. 1110    LET A=INT(10*A/R+.5)/10
  103. 1120    IF E=0 THEN 1200
  104. 1130    IF A>Z1 THEN 1140 ELSE 1200
  105. 1140    IF A<Z2 THEN 1150 ELSE 1200
  106. 1150    IF E>M THEN 1160 ELSE 1200
  107. 1160    IF E<N THEN 1170 ELSE 1200
  108. 1170    PRINT IN FORM "4D";(B+1)
  109. 1180    PRINT IN IMAGE "           %%%.%          %%.%";A,E
  110. 1190    IF I=45 THEN PRINT
  111. 1200    LET G=G+G0
  112. 1210    LET D=D+D0
  113. 1220    NEXT I
  114. 1230    LET G1=G2
  115. 1240    LET D1=D2
  116. 1250    LET B=B5
  117. 1260    GOTO 710
  118. 2000    END
  119.