|
- 10 REM NEW AND FULL MOONS
- 12 REM
- 14 REM
- 16 R1=3.14159265/180: U=0
- 18 INPUT "YEAR ";Y
- 19 G=1: IF Y<1583 THEN G=0
- 20 PRINT
- 22 K0=INT((Y-1900)*12.3685)
- 24 T=(Y-1899.5)/100
- 26 T2=T*T: T3=T*T*T
- 28 J0=2415020+29*K0
- 30 F0=0.0001178*T2-0.000000155*T3
- 32 F0=F0+0.75933+0.53058868*K0
- 34 F0=F0-0.000837*T-0.000335*T2
- 36 J0=J0+INT(F0): F0=F0-INT(F0)
- 38 M0=K0*0.08084821133
- 40 M0=360*(M0-INT(M0))+359.2242
- 42 M0=M0-0.0000333*T2
- 44 M0=M0-0.00000347*T3
- 46 M1=K0*0.07171366128
- 48 M1=360*(M1-INT(M1))+306.0253
- 50 M1=M1+0.0107306*T2
- 52 M1=M1+0.00001236*T3
- 54 B1=K0*0.08519585128
- 56 B1=360*(B1-INT(B1))+21.2964
- 58 B1=B1-0.0016528*T2
- 60 B1=B1-0.00000239*T3
- 62 FOR K9=1 TO 27 STEP 2
- 64 J=J0+14*K9: F=F0+0.765294*K9
- 66 K=K9/2
- 68 M5=(M0+K*29.10535608)*R1
- 69 M6=(M1+K*385.81691806)*R1
- 70 B6=(B1+K*390.67050646)*R1
- 71 F=F-0.4068*SIN(M6)
- 72 F=F+(0.1734-0.000393*T)*SIN(M5)
- 73 F=F+0.0161*SIN(2*M6)
- 74 F=F-0.0104*SIN(2*B6)
- 75 F=F-0.0074*SIN(M5-M6)
- 76 F=F-0.0051*SIN(M5+M6)
- 77 F=F+0.0021*SIN(2*M5)
- 81 F=F+0.5/1440
- 82 J=J+INT(F): F=F-INT(F)
- 86 GOSUB 100
- 92 NEXT
- 94 GO TO 999
- 100 REM LUNAR ECLIPSE SUBROUTINE
- 102 D7=0
- 104 IF ABS(SIN(B6))>0.36 THEN 196
- 106 S=5.19595-0.0048*COS(M5)
- 108 S=S+0.0020*COS(2*M5)
- 110 S=S-0.3283*COS(M6)
- 112 S=S-0.0060*COS(M5+M6)
- 114 S=S+0.0041*COS(M5-M6)
- 116 C1=0.2070*SIN(M5)
- 118 C1=C1+0.0024*SIN(2*M5)
- 120 C1=C1-0.0390*SIN(M6)
- 122 C1=C1+0.0115*SIN(2*M6)
- 124 C1=C1-0.0073*SIN(M5+M6)
- 126 C1=C1-0.0067*SIN(M5-M6)
- 128 C1=C1+0.0117*SIN(2*B6)
- 130 D9=ABS(S*SIN(B6)+C1*COS(B6))
- 132 U=0.0059+0.0046*COS(M5)
- 134 U=U-0.0182*COS(M6)
- 136 U=U+0.0004*COS(2*M6)
- 138 U=U-0.0005*COS(M5+M6)
- 140 RP=1.2847+U: RU=0.7404-U
- 142 MP=(1.5572+U-D9)/0.545
- 144 IF MP<0 THEN 196
- 146 MU=(1.0129-U-D9)/0.545
- 148 D5=1.5572+U: D6=1.0129-U
- 150 D7=0.4679-U
- 152 N=(0.5458+0.04*COS(M6))/60
- 154 D5=SQR(D5*D5-D9*D9)/N
- 156 IF MU<=0 THEN 164
- 158 D6=SQR(D6*D6-D9*D9)/N
- 160 IF MU<=1 THEN 164
- 162 D7=SQR(D7*D7-D9*D9)/N
- 164 GOSUB 900: PRINT
- 166 PRINT "ECLIPSE DATE: ";Y;M;D1
- 168 PRINT " MAXIMUM PHASE: ";
- 170 PRINT H1;"h ";M9;"m UT"
- 172 MP=INT(1000*MP+0.5)/1000
- 174 PRINT " PENUMBRAL MAG: ";MP
- 176 IF MU<=0 THEN 182
- 178 MU=INT(1000*MU+0.5)/1000
- 180 PRINT " UMBRAL MAG: ";MU
- 182 PRINT " SEMIDURATIONS --"
- 184 D5=INT(D5+0.5): REM ROUND OFF
- 186 PRINT " PENUMBRA: ";D5;"m"
- 188 IF MU<0 THEN 196
- 190 D6=INT(D6+0.5): D7=INT(D7+0.5)
- 192 PRINT " UMBRA: ";D6;"m"
- 194 PRINT " TOTALITY: ";D7;"m"
- 196 RETURN
- 900 REM JD --> CALENDAR
- 905 REM
- 920 F=F+0.5
- 925 IF F<1 THEN 935
- 930 F=F-1: J=J+1
- 935 IF G=1 THEN 945
- 940 A=J: GOTO 955
- 945 A1=INT((J/36524.25)-51.12264)
- 950 A=J+1+A1-INT(A1/4)
- 955 B=A+1524
- 960 C=INT((B/365.25)-0.3343)
- 965 D=INT(365.25*C)
- 970 E=INT((B-D)/30.61)
- 975 D=B-D-INT(30.61*E)+F
- 980 M=E-1: Y=C-4716
- 985 IF E>13.5 THEN M=M-12
- 990 IF M<2.5 THEN Y=Y+1
- 993 D1=INT(D): H=24*(D-D1)
- 994 H1=INT(H): M9=INT(60*(H-H1))
- 997 RETURN
- 999 END
- 1000 REM ***********************
- 1001 REM THIS IS THE *COMPLETE*
- 1002 REM PROGRAM FOR PREDICTING
- 1003 REM LUNAR ECLIPSES (SEE
- 1004 REM SKY & TELESCOPE, JUNE,
- 1005 REM 1988, PAGE 640)
- 1006 REM ***********************
|