|
- 10 REM LOCAL CIRCUMSTANCES OF A
- 20 REM SOLAR ECLIPSE
- 30 REM
- 40 DEFDBL A-Z
- 50 GOSUB 760: PRINT D$: PRINT
- 60 GOSUB 630
- 70 INPUT "Universal time (h,m)";HH,MM
- 80 IF HH=99 THEN 110
- 90 UT=HH+MM/60: REM UT in hours
- 100 GOSUB 140: GOTO 70
- 110 END
- 120 REM **** SUBROUTINES ****
- 130 REM
- 140 REM Compute details at time UT
- 150 T=UT+DT/3600-T0: REM "Element time"
- 160 X=FNX(T): REM x
- 170 Y=FNY(T): REM y
- 180 CD=FNC(T): REM cos(d)
- 190 SD=FNS(T): REM sin(d)
- 200 M=DR*FNM(T): REM mu
- 210 REM
- 220 REM Now find H.A. in radians
- 230 H=M+LO-DT/13713
- 240 REM
- 250 REM Now find xi, eta, zeta
- 260 X8=P9*SIN(H)
- 270 Y8=P8*CD-P9*SD*COS(H)
- 280 Z8=P8*SD+P9*CD*COS(H)
- 290 U0=X-X8: REM u
- 300 V0=Y-Y8: REM v
- 310 L1=FNL1(T): REM l1
- 320 L2=FNL2(T): REM l2
- 330 W1=L1-Z8*F1: REM L1
- 340 W2=L2-Z8*F2: REM L2
- 350 REM
- 360 REM Magnitude
- 370 G1=SQR(U0*U0+V0*V0)
- 380 G=(W1-G1)/(W1+W2)
- 390 REM
- 400 REM Position angle
- 410 PA=RD*ATN(U0/V0)
- 420 IF V0<0 THEN PA=PA+180
- 430 IF PA<0 THEN PA=PA+360
- 440 IF PA>360 THEN PA=PA-360
- 450 REM
- 460 REM Sun's altitude
- 470 A8=SD*SIN(LA)
- 480 A8=A8+CD*COS(LA)*COS(H)
- 490 AL=RD*ATN(A8/SQR(1-A8*A8))
- 500 REM
- 505 REM
- 510 REM Print out a line of data
- 520 REM
- 530 UT=T-DT/3600+T0: REM "Element time" back to UT
- 540 UT=UT+.5/3600: REM Round to whole second
- 550 HH=INT(UT): M3=60*(UT-HH): MM=INT(M3)
- 560 SS=INT(60*(M3-MM))
- 570 PA=INT(PA+.5): AR=INT(AL+.5): REM Whole degrees
- 580 IF AL<0 THEN PRINT "Sun below horizon": GOTO 610
- 590 IF G<0 THEN PRINT "No eclipse at this time": GOTO 610
- 600 PRINT USING A2$;HH;MM;SS;PA;AR;G
- 610 RETURN
- 620 REM
- 630 REM Geocentric Coordinates of Observer
- 640 REM
- 650 INPUT "North latitude (deg) ";LA
- 660 INPUT "East longitude (deg) ";LO
- 670 INPUT "Elevation (feet) ";EL
- 680 LA=LA*DR: LO=LO*DR: REM Lat, long in radians
- 690 EL=EL*12/39.37: REM Elevation in meters
- 700 U=ATN(.99664719#*TAN(LA))
- 710 P8=.99664719#*SIN(U)+EL*SIN(LA)/6378140#
- 720 P9=COS(U)+EL*COS(LA)/6378140#
- 730 REM P8 = rho sin(phi'); P9 = rho cos(phi')
- 740 RETURN
- 750 REM
- 760 REM Constants
- 770 ' PI=3.141592653589793#:
- 775 DR=PI/180: RD=1/DR
- 780 A2$=" UT ##:##:## PA ### Alt ### Mag #.###"
- 790 REM
- 800 REM
- 810 REM Eclipse elements
- 820 D$="Total Solar Eclipse of July 11, 1991"
- 830 T0=16: REM Reference time (hr)
- 840 DT=0: REM Delta-T (sec) in sense ET-UT
- 850 DEF FNX(T)=-1.75954169#+T*(+.56710171#+T*(+4.902E-05-T*9.60E-06))
- 860 DEF FNY(T)=+.42232901#+T*(-.13699808#+T*(-1.7527E-04+T*.0000025))
- 870 DEF FNS(T)=+.37643393#+T*(-8.389E-05+T*(-.0000001))
- 880 DEF FNC(T)=+.92644352#+T*(+3.404E-05+T*(+4E-08))
- 890 DEF FNM(T)=58.6389581#+T*(15.0000486#+T*(+1.65E-06-T*2E-08))
- 900 DEF FNL1(T)=.53024501#+T*(+1.0153E-04+T*(-1.278E-05))
- 910 DEF FNL2(T)=-.01606+T*(.000101+T*(-1.272E-05))
- 920 F1=.004599: REM tan(f1)
- 930 F2=.004576: REM tan(f2)
- 940 M1=.2618: REM mu' (radians/hr)
- 950 D1=-.000091: REM d' (radians/hr)
- 960 RETURN
- 1000 REM For the partial and total phases of the July 11, 1991,
- 1010 REM solar eclipse, when you enter a series of Universal times,
- 1020 REM this program computes the position angle of the Moon's
- 1030 REM center from the Sun, the Sun's altitude, and the "magnitude"
- 1040 REM of the eclipse (that is, the fraction of the solar disk
- 1050 REM diameter that is hidden). When entering your longitude and
- 1060 REM longitude, use positive degrees for north latitude and
- 1070 REM *negative* degrees for west longitude. The results of this
- 1080 REM program agree exactly with those published by the U. S. Naval
- 1090 REM Observatory in its eclipse circular. The program was written
- 1100 REM by Roger W. Sinnott.
|