home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / basic / math.ark / TRANSIT.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-12-21  |  2.3 KB  |  52 lines

  1. 10 REM PROGRAM "RISE-SET.BAS," A MBASIC PROGRAM CALCULATING THE LOCAL HOUR ANGLE
  2. 20 REM    AND THE LOCAL AZMUTH OF THE RISING OF AN ASTRONOMICAL BODY
  3. 30 REM       GIVEN ITS DECLINATION AND THE OBSERVERS LATITUDE
  4. 40 REM           REVISED 4-19-1985, MIKE FINERTY, TUCSON
  5. 50 REM ***********************************************************************
  6. 60 PI = 3.1415926#
  7. 70 CONST = 1.00273790926#
  8. 80 INPUT "DECLINATION OF BODY IN DEC. DEGREES";D
  9. 90 INPUT "LATITUDE OF OBSERVER IN DEGREES.MINS "; LAT
  10. 100 DEC = D*PI/180
  11. 110 LATITUDE = 100/60*(LAT - INT(LAT))+INT(LAT)
  12. 120 L = LATITUDE*PI/180
  13. 130 TEST = ABS(DEC)
  14. 140 IF TEST > PI/2-ABS(L) THEN 470
  15. 150 LHACOS = - TAN(L)*TAN(DEC)
  16. 160 AZCOS = SIN(DEC)/COS(L)
  17. 170 LHA =PI/2-ATN(LHACOS/(1-LHACOS^2)^.5)
  18. 180 AZ = PI/2-ATN(AZCOS/(1-AZC0S^2)^.5)
  19. 190 AZ = AZ/PI*180
  20. 200 LHA=LHA/PI*12
  21. 210 LHA = 24-LHA
  22. 220 PRINT "RISING AZMUTH =";AZ;"DEGREES, SETTING AZMUTH =";360-AZ;"DEGREES"
  23. 230 PRINT "LHA RISING =";LHA;"HOURS, LHA SETTING =";24-LHA;"HOURS"
  24. 240 PRINT "OBJECT VISIBLE FOR";2*(24-LHA);"HOURS."
  25. 250 PRINT "ALTITUDE AT UPPER CULMINATION (TRANSIT) =";90-ABS(L-DEC)*180/PI;"DEGREES"
  26. 260 IF DEC = L THEN PRINT "CULMINATION AT ZENITH"
  27. 270 IF DEC>L THEN PRINT "TRANSIT NORTH OF ZENITH"
  28. 280 IF DEC<L THEN PRINT "TRANSIT SOUTH OF ZENITH"
  29. 290 INPUT "RIGHT ASCENTION =";RA
  30. 300 INPUT "LONGITUDE = ";LONG
  31. 310 LONG = (LONG + (100/60*(LONG - INT(LONG))))/15
  32. 320 INPUT "SIDERAIAL TIME IN DECIMAL HOURS, 00:0000 UT, YOUR DAY", STIME
  33. 330 LMTTRANS = (STIME - RA +LONG - INT(LONG))*CONST
  34. 340 IF LMTTRANS < 0 THEN LMTTRANS = LMTTRANS + 24
  35. 350 PRINT "OBJECT TRANSITS AT: ";INT(LMTTRANS);"HRS";60*(LMTTRANS-INT(LMTTRANS));"MINS LOCAL TIME"
  36. 360 IF FLAG = 1 THEN 430
  37. 370 FLAG = 0
  38. 380 RISETIME = LMTTRANS - CONST*(24-LHA)
  39. 390 IF RISETIME < 0 THEN RISETIME = RISETIME + 24
  40. 400 PRINT "OBJECT WILL RISE AT: ";RISETIME; " HOURS, LOCAL TIME"
  41. 410 SETTIME = LMTTRANS +CONST*(24-LHA)
  42. 420 PRINT "OBJECT WILL SET AT: ";SETTIME;" HOURS, LOCAL TIME"
  43. 430 PRINT "DO YOU WANT ANOTHER OBJECT ? Y/N?"
  44. 440 INPUT ANS$
  45. 450 IF ANS$ = "Y" GOTO 10
  46. 460 END
  47. 470 IF SGN(DEC) = SGN(L) THEN PRINT "OBJECT DOES NOT SET"
  48. 480 IF SGN(DEC) = -1*SGN(L) THEN PRINT "OBJECT DOES NOT RISE ABOVE HORIZON"
  49. 490 FLAG = 1
  50. 500 GOTO 250
  51. OBJECT DOES NOT SET"
  52. 480 IF SGN(DEC) = -1*SGN(L)