1 PRINT "From the June 1984 SKY & TELESCOPE, pp. 559." : PRINT 2 PRINT "This program calculates the altitude and azimuth of an object for a" 3 PRINT "particular time and place." : PRINT 4 PRINT "INPUT: Year (Y), month (M), day with fraction (D) (UT), Julian or" 5 PRINT " Gregorian calendar, right ascension of object (h, min, s)," 6 PRINT " declination of object (degrees, minutes, seconds), latitude" 7 PRINT " and longitude of observer (degrees, north latitudes and east" 8 PRINT " longitudes positive)." : PRINT 9 PRINT "OUTPUT: Julian Day and fractional part, altitude, azimuth (degrees," 10 PRINT " from north through east)." : PRINT 11 REM ALTITUDE AND AZIMUTH 12 REM 14 P=3.14159265#: R1=P/180 15 GOSUB 700 : T=S*15*R1 16 INPUT "R A (H,M,S) ";A$,A2,A3 18 GOSUB 72: R=A*15*R1 20 INPUT "DEC (D,M,S) ";A$,A2,A3 22 GOSUB 72: D=A*R1 24 INPUT "LAT, LONG ";B,L 26 B=B*R1: L=L*R1 32 T5=T-R+L: REM LHA 34 S1=SIN(B)*SIN(D) 36 S1=S1+COS(B)*COS(D)*COS(T5) 38 C1=1-S1*S1 40 IF C1>0 THEN C1=SQR(C1) 42 IF C1<=0 THEN 46 44 H=ATN(S1/C1): GOTO 48 46 H=SGN(S1)*P/2 48 C2=COS(B)*SIN(D) 50 C2=C2-SIN(B)*COS(D)*COS(T5) 52 S2=-COS(D)*SIN(T5) 54 IF C2=0 THEN A=SGN(S2)*P/2 56 IF C2=0 THEN 62 58 A=ATN(S2/C2) 60 IF C2<0 THEN A=A+P 62 IF A<0 THEN A=A+2*P 64 PRINT 66 PRINT "ALTITUDE: ";H/R1 68 PRINT "AZIMUTH: ";A/R1 70 RUN"ASTRMENU.BAS" 72 REM SEXAGESIMAL TO DECIMAL 74 REM 76 S=1: A1=ABS(VAL(A$)) 78 IF LEFT$(A$,1)="-" THEN S=-1 80 A=S*(A1+A2/60+A3/3600) 82 RETURN 700 REM GREENWICH MEAN 702 REM SIDEREAL TIME 704 REM 706 GOSUB 800 708 D=J-2451545! 710 T=D/36525!: T1=INT(T) 712 J0=T1*36525!+2451545! 714 T2=(J-J0+.5)/36525! 716 S=24110.54841#+184.812866#*T1 718 S=S+8640184.812866#*T2 720 S=S+.093104*T*T 722 S=S-.0000062*T*T*T 724 S=S/86400!: S=S-INT(S) 726 S=24*(S+(F-.5)*1.002737909#) 728 IF S<0 THEN S=S+24 730 IF S>24 THEN S=S-24 731 RETURN 732 H=INT(S): M1=60*(S-H) 734 M=INT(M1): S=60*(M1-M) 736 PRINT "GMST: ";H;M;S 738 END 800 REM CALENDAR --> JD 805 REM 810 INPUT "Y,M,D ";Y,M,D 815 INPUT "JC (0) OR GC (1) ";G 820 D1=INT(D): F=D-D1-.5 825 J=-INT(7*(INT((M+9)/12)+Y)/4) 830 IF G=0 THEN 850 835 S=SGN(M-9): A=ABS(M-9) 840 J1=INT(Y+S*INT(A/7)) 845 J1=-INT((INT(J1/100)+1)*3/4) 850 J=J+INT(275*M/9)+D1+G*J1 855 J=J+1721027!+2*G+367*Y 860 IF F>=0 THEN 870 865 F=F+1: J=J-1 870 PRINT "J.D.: ";J;F 875 RETURN