home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / basic / math.ark / RISETIME.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-12-21  |  2.3 KB  |  51 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 460
  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" ELSE PRINT"TRANSIT SOUTH OF ZENITH"
  28. 280 INPUT "RIGHT ASCENTION =";RA
  29. 290 INPUT "LONGITUDE = ";LONG
  30. 300 LONG = (LONG + (100/60*(LONG - INT(LONG))))/15
  31. 310 INPUT "SIDERAIAL TIME IN DECIMAL HOURS, 00:0000 UT, YOUR DAY", STIME
  32. 320 LMTTRANS = (STIME - RA +LONG - INT(LONG))*CONST
  33. 330 IF LMTTRANS < 0 THEN LMTTRANS = LMTTRANS + 24
  34. 340 PRINT "OBJECT TRANSITS AT: ";INT(LMTTRANS);"HRS";60*(LMTTRANS-INT(LMTTRANS));"MINS LOCAL TIME"
  35. 350 IF FLAG = 1 THEN 420
  36. 360 FLAG = 0
  37. 370 RISETIME = LMTTRANS - CONST*(24-LHA)
  38. 380 IF RISETIME < 0 THEN RISETIME = RISETIME + 24
  39. 390 PRINT "OBJECT WILL RISE AT: ";RISETIME; " HOURS, LOCAL TIME"
  40. 400 SETTIME = LMTTRANS +CONST*(24-LHA)
  41. 410 PRINT "OBJECT WILL SET AT: ";SETTIME;" HOURS, LOCAL TIME"
  42. 420 PRINT "DO YOU WANT ANOTHER OBJECT ? Y/N?"
  43. 430 INPUT ANS$
  44. 440 IF ANS$ = "Y" GOTO 10
  45. 450 END
  46. 460 IF SGN(DEC) = SGN(L) THEN PRINT "OBJECT DOES NOT SET"
  47. 470 IF SGN(DEC) = -1*SGN(L) THEN PRINT "OBJECT DOES NOT RISE ABOVE HORIZON"
  48. 480 FLAG = 1
  49. 490 GOTO 250
  50. OBJECT DOES NOT SET"
  51. 470 IF SGN(DEC) = -1*SGN(L) THEN PRINT "OB