home *** CD-ROM | disk | FTP | other *** search
- 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
- OBJECT DOES NOT SET"
- 470 IF SGN(DEC) = -1*SGN(L) THEN PRINT "OB