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