home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / basic / astrmenu.lbr / LUNAR.BZS / LUNAR.BAS
Encoding:
BASIC Source File  |  1987-04-26  |  2.1 KB  |  72 lines

  1. 1 PRINT "From the January 1985 SKY & TELESCOPE, pp. 62-3."
  2. 2 PRINT
  3. 3 PRINT "This program determines the heights of lunar features from"
  4. 4 PRINT "photographs."
  5. 5 PRINT
  6. 6 PRINT "INPUT:  Half-chord length (mm) and segment length (mm) from limb"
  7. 7 PRINT "        photograph, Earth's selenographic longitude and latitude"
  8. 8 PRINT "        (degrees), Sun's selenographic colongitude and latitude"
  9. 9 PRINT "        (degrees), selenographic latitude and longitude of the lunar"
  10. 10 PRINT "        feature (degrees), measured shadow length (mm)."
  11. 11 PRINT
  12. 12 PRINT "OUTPUT:  Height of lunar feature (m).
  13. 13 PRINT
  14. 100 REM   COMPUTING LUNAR HEIGHTS
  15. 110 REM
  16. 120 INPUT "HALF-CHORD (MM) ";L1
  17. 130 INPUT "SEGMENT (MM) ";L2
  18. 140 PRINT
  19. 150 PRINT "USE VALUES IN DEGREES"
  20. 160 PRINT
  21. 170 INPUT "EARTH SEL. LONG. ";LE
  22. 180 INPUT "EARTH SEL. LAT. ";BE
  23. 190 INPUT "SUN SEL. COLONG. ";CS
  24. 200 INPUT "SUN SEL. LAT. ";BS
  25. 210 REM  CONVERT DEG TO RADIANS
  26. 220 DR = 3.14159/180
  27. 230 LS = 90-CS
  28. 240 IF LS<0 THEN LS = 450-CS
  29. 250 BE = BE*DR:  LE = LE*DR
  30. 260 BS = BS*DR:  LS = LS*DR
  31. 270 CS = CS*DR
  32. 280 RM = 1080
  33. 290 EM = 239000!
  34. 300 SM = 93000000#
  35. 310 PRINT
  36. 320 PRINT "ENTER FEATURE DATA"
  37. 330 INPUT "  SEL. LONGITUDE ";LO
  38. 340 INPUT "  SEL. LATITUDE ";BO
  39. 350 INPUT "  SHADOW (MM) ";MQ
  40. 360 BO = BO*DR:  LO = LO*DR
  41. 370 I1 = SIN(BE)*SIN(BO)
  42. 380 I2 = SIN(BE)*SIN(BS)
  43. 390 I3 = SIN(BS)*SIN(BO)
  44. 400 I4 = COS(BE)*COS(BO)
  45. 410 I5 = COS(BE)*COS(BS)
  46. 420 I6 = COS(BS)*COS(BO)
  47. 430 EI = I1+14*COS(LO-LE)
  48. 440 ER = I2+I5*COS(LE-LS)
  49. 450 SI = I3+I6*COS(LO-LS)
  50. 460 RX = L1/SIN(2*ATN(L1/L2))
  51. 470 MR = MQ/RX
  52. 480 I7 = RM*RM:  I8 = EM*EM
  53. 490 I9 = SM*SM
  54. 500 XE = SQR(I7+I8-2*RM*EM*EI)
  55. 510 ES = SQR(I8+I9-2*EM*SM*ER)
  56. 520 XS = SQR(I7+I9-2*RM*SM*SI)
  57. 530 S = (XE+ES+XS)/2
  58. 540 P = S*(S-ES)*(S-XE)*(S-XS)
  59. 550 P = (2/(XE*XS))*SQR(P)
  60. 560 SH = I3+I6*SIN(CS+LO)
  61. 570 M1 = (MR*SH/P)-1
  62. 580 M2 = (MR/P)*((MR/P)-2*SH)
  63. 590 H = (M1+SQR(M1*M1-M2))*RM
  64. 600 H = H*1609: H = INT(H)
  65. 610 PRINT "HEIGHT =";H;" METRES"
  66. 620 PRINT: PRINT "DO ANOTHER ";
  67. 630 PRINT "FROM SAME PHOTO";
  68. 640 INPUT " (Y/N) ";YN$
  69. 650 IF YN$="Y" THEN GOTO 310
  70. 660 RUN"ASTRMENU.BAS"
  71. NT "DO ANOTHER ";
  72. 630 PRINT "FROM SAME PHOT