100 REM PROGRAM 'ALTAZ.BAS' LISTS ALTITUDE & AZIMUTH FOR SELECTED OBJECTS IN 110 REM THE SKY. DESIGNED TO BE USED WITH A DOBSONIAN TELESCOPE THAT HAS 120 REM ALTITUDE AND AZIMUTH CIRCLES ON BOTH AXES. AIM THE SCOPE AT A KNOWN 130 REM OBJECT TO CALIBRATE AZIMUTH & NO OTHER ADJUSTMENTS ARE NEEDED ALL NIGHT. 140 REM MODIFIED FROM PROGRAMS BY R. W. SINNOTT, SKY & TELESCOPE, 5-6/87,5-87. 150 REM MODIFIED TO USE RA/DEC IN DATA STATEMENTS @ LINE 260+ BY R. B. MINTON. 160 REM *********************************************************************** 170 REM ** BE SURE TO EDIT THE LOCAL YEAR/MONTH/DAY/TIME. TIME=24-HOUR LOCAL 180 REM ** STD TIME (S) OR DAYLIGHT SAVINGS TIME (D) @ LINE 390. DST IS APRIL 190 REM ** TO OCTOBER. EDIT LAT/LONG @ LINE 400. TO ADD OR SUBTRACT ANY 200 REM ** OBJECTS TO THE DATA STATEMENTS, CHANGE VALUE OF 'NDX' @ LINE 250. 210 REM *********************************************************************** 220 DEF FNA(X)=INT(X*10#+.5#)/10#: DIM ND(12): SC=0: MM$="???": UK=0 230 DATA 31,28,31,30,31,30,31,31,30,31,30,31 240 FOR I=1 TO 12: READ ND(I): NEXT I 250 NDX=3: DIM NAM$(NDX),RAH$(NDX),RAM(NDX),DEC$(NDX),DECM(NDX) 260 DATA "LEONID METEOR RADIANT ","10",14.3,"+21",45 270 DATA "METEOR TRAIL 1 ","10",13.3,"+26",53 280 DATA "METEOR TRAIL 1 ","10",13.0,"+28",06 290 FOR I=1 TO NDX: READ NAM$(I),RAH$(I),RAM(I),DEC$(I),DECM(I): NEXT I 300 FM1$=" #### ## ## ## ## & ###.#### ####.####" 310 FM2$=" & & ##.# & ## ###.# ###.#" 320 SYNP=29.53058868#: REM SYNODICAL PERIOD OF MOON 330 P=3.14159265#: R1=P/180# 340 PRINT" TABULAR LISTING OF ALTITUDE (ALT) & AZIMUTH (AZ) FOR SELECTED OBJECTS" 350 PRINT 360 PRINT" YEAR MONTH DAY HOURS MINUTES ZONE LATITUDE LONGITUDE" 370 REM --------------------------------- S = STANDARD TIME ------------------ 380 Y=1998: M=11: D=17: HR=3: MN=10: AT$="S": REM LOCAL DATE/TIME (24 HRS) 390 REM --------------------------------- D = DAYLIGHT SAVINGS TIME ---------- 400 B=36.9073#: L=-104.4374: REM LATITUDE AND LONGITUDE OF OBSERVER (W=-) 410 IF AT$="D" THEN GOTO 430: GOTO 430: REM USING MDT 420 IF AT$="S" THEN GOTO 430: GOTO 430: REM USING MST 430 I=(Y*.25)-INT(Y*.25) 440 IF I=0 THEN ND(2)=29: REM FOUND A LEAP YEAR 450 UY=Y: UM=M: UD=D 460 IF AT$="D" THEN UHR=HR+6: MM$="MDT": REM ON MDT 470 IF AT$="S" THEN UHR=HR+7: MM$="MST": REM ON MST 480 IF UHR < 24 THEN GOTO 540 490 UHR=UHR-24: UD=UD+1 500 IF UD <= ND(M) THEN GOTO 540 510 UD=1: UM=UM+1 520 IF UM <= 12 THEN GOTO 540 530 UM=1: UY=UY+1 540 REM CONTINUE 550 PRINT USING FM1$;Y,M,D,HR,MN,MM$,B,L 560 B=B*R1: L=L*R1: REM NOW IN RADIANS 570 FUD=UD+UHR/24+MN/1440+SC/86400! 580 D1=INT(FUD): F=FUD-D1-.5 590 J=-INT(7*(INT((UM+9)/12)+UY)/4) 600 S=SGN(UM-9): A=ABS(UM-9) 610 J1=INT(UY+S*INT(A/7)) 620 J1=-INT((INT(J1/100)+1)*3/4) 630 J=J+INT(275*UM/9)+D1+1*J1 640 J=J+1721027!+2*1+367*UY 650 IF F>=0 THEN GOTO 670 660 F=F+1: J=J-1 670 V=(J+F)/SYNP: C=V-INT(V): C=FNA(C): REM MOON'S PHASE (NEW = 0.32) 680 AGE=(C-.32)*SYNP: REM MOON'S AGE IN DAYS 690 IF AGE < 0 THEN AGE=AGE+SYNP: REM KEEP IT POSITIVE 700 REM CONTINUE 710 REM --------------------- 720 REM GMST FROM JULIAN DATE 730 REM --------------------- 740 D=J-2451545! 750 T=D/36525!: T1=INT(T) 760 J0=T1*36525!+2451545! 770 T2=(J-J0+.5)/36525! 780 S=24110.54841#+184.812866#*T1 790 S=S+8640184.812866#*T2 800 S=S+.093104*T*T 810 S=S-.0000062*T*T*T 820 S=S/86400!: S=S-INT(S) 830 ST=24*(S+(F-.5)*1.002737909#) 840 IF ST<0! THEN ST=ST+24# 850 IF ST>24# THEN ST=ST-24# 860 H=INT(ST): M1=60#*(ST-H) 870 M=INT(M1): SC=60#*(M1-M) 880 REM PRINT "GMST = ";H;M;SC 890 A$=STR$(H): A2=M: A3=SC 900 GOSUB 1310: T=A*15*R1 910 PRINT 920 PRINT " OBJECT RA DEC ALT AZ " 930 PRINT " ---------------------------------------------------------------------------" 940 REM ------------------------ 950 REM INPUT RA & DEC OF OBJECT 960 REM ------------------------ 970 REM CONTINUE 980 UK=UK+1 990 A$=RAH$(UK): A2=RAM(UK): A3=0 1000 GOSUB 1310: R=A*15*R1 1010 A$=DEC$(UK): A2=DECM(UK): A3=0 1020 GOSUB 1310: D=A*R1 1030 LST=S+(L/15): IF LST<0 THEN LST=LST+24 1040 IF LST>24 THEN LST=LST-24 1050 H=INT(LST): M1=60*(LST-H) 1060 M=INT(M1): SC=60*(M1-M) 1070 T5=T-R+L: REM LOCAL HOUR ANGLE 1080 S1=SIN(B)*SIN(D) 1090 S1=S1+COS(B)*COS(D)*COS(T5) 1100 C1=1#-S1*S1 1110 IF C1>0! THEN C1=SQR(C1) 1120 IF C1<=0! THEN GOTO 1140 1130 H=ATN(S1/C1): GOTO 1150 1140 H=SGN(S1)*P/2# 1150 C2=COS(B)*SIN(D) 1160 C2=C2-SIN(B)*COS(D)*COS(T5) 1170 S2=-COS(D)*SIN(T5) 1180 IF C2=0! THEN A=SGN(S2)*P/2# 1190 IF C2=0! THEN GOTO 1220 1200 A=ATN(S2/C2) 1210 IF C2<0! THEN A=A+P 1220 IF A<0! THEN A=A+2#*P 1230 ALT=FNA(H/R1): AZI=FNA(A/R1) 1240 IF ALT<10 THEN GOTO 1270: REM OBJECT TOO LOW 1250 IF ALT>90 THEN GOTO 1270: REM OBJECT TOO HIGH 1260 PRINT USING FM2$;NAM$(UK),RAH$(UK),RAM(UK),DEC$(UK),DECM(UK),ALT,AZI 1270 REM CONTINUE 1280 IF UK=NDX THEN GOTO 1300 1290 GOTO 970 1300 END 1310 REM SEXAGESIMAL TO DECIMAL SUBROUTINE 1320 SI=1: A1=ABS(VAL(A$)) 1330 IF LEFT$(A$,1)="-" THEN SI=-1 1340 A=SI*(A1+A2/60#+A3/3600#) 1350 RETURN