|
!山中さんとダブってしまったが、書いてしまっていたので、捨てるのもモッタイナイかと、
!投稿することにした。合わせてご参考に。
!を、そのまま計算したものであるが、
!"Calculate current Julian Cycle" と、"Approximate Solar Noon" の2項目を取外し
!
!代りに、J* =JulianDate.( UT 00:00 に換算)-(当地~当地の中央標準時との時差)
!
!とした。J* は、変数名に使用できないので、Jx のシンボルを用いている。
!プログラムは、1~12月間の16ポイントで、暦象年表と比較表示している。
!-------------------------------------------------------
OPTION ANGLE DEGREES
!
! E135°00' N34°38' !明石市相生町(現在の天文町2丁目)
! E139°44' 28.8759" N35°39' 29.1572" !東京(日本経緯度原点)旧東京天文台
!
LET Ls=135 !当地の中央標準時の経度(明石市)
LET Lw=139 +44/60 +28.8759/3600 ! 当地の経度(東京)
LET φ= 35 +39/60 +29.1572/3600 ! 当地の緯度(東京)
PRINT USING "東京都の、緯度=##.###°経度=###.###°" :φ,Lw
!
!均時差= 視太陽時-平均太陽時 ・・明石市でのみ、JST 12:00-均時差 に南中する。
!
!東京都の 均時差 出 南中 入
DATA 2010, 1, 7, " -6m01.6s 6:51 11:47:07 16:43"
DATA 2010, 2, 7, "-14m04.6s 6:36 11:55:07 17:14"
DATA 2010, 3, 7, "-11m08.7s 6:04 11:52:09 17:41"
DATA 2010, 4, 7, " -2m17.1s 5:20 11:43:17 18:07"
DATA 2010, 4,16, " +0m04.0s 5:08 11:40:57 18:15"
DATA 2010, 5, 7, " +3m25.7s 4:44 11:37:36 18:32"
DATA 2010, 6, 7, " +1m15.6s 4:25 11:39:48 18:55"
DATA 2010, 6,13, " +0m03.9s 4:25 11:41:00 18:58"
DATA 2010, 7, 7, " -4m49.6s 4:31 11:45:53 19:00"
DATA 2010, 8, 7, " -5m50.5s 4:53 11:46:52 18:40"
DATA 2010, 9, 2, " +0m08.1s 5:13 11:40:52 18:08"
DATA 2010, 9, 7, " +1m47.0s 5:17 11:39:13 18:01"
DATA 2010,10, 7, "+12m00.0s 5:40 11:29:00 17:17"
DATA 2010,11, 7, "+16m20.5s 6:08 11:24:42 16:41"
DATA 2010,12, 7, " +8m47.8s 6:37 11:32:17 16:28"
DATA 2010,12,25, " +0m14.0s 6:48 11:40:51 16:33"
DO
READ IF MISSING THEN EXIT DO: YY,MM,DD,w$
PRINT "暦象年表の東京→ ";w$
CALL sun( YY,MM,DD )
PRINT
LOOP
!---------------------------
! 日の出、入りの計算と表示
!---------------------------
SUB sun( YY,MM,DD )
LET Jx=JDN00(YY,MM,DD)-.5 -((Lw-Ls)/360) !JD.年月日(UT00:00) - (当地~当地の中央標準時との時差)
! (近日点 0°=2000.1.3_14:00)
LET M= MOD( 357.5291 +.98560028*(Jx-2451545.0) ,360) !M 平均近点角 ←Jx,(357.5291°=2000.1.1_00:00)
LET C= 1.9148*SIN(M) +.02*SIN(2*M) +.0003*SIN(3*M) !C 補正( 近点角-平均近点角) ← M
LET λ= MOD( M +C +282.9372, 360) !λ黄経 ← M,C,(282.9372= 近日点2000.1.3_14:00の黄経)
!
LET Jtransit= Jx +.0053*SIN(M) -.0069*SIN(2*λ) !太陽 南中の julian date
!
LET δ= ASIN( SIN(λ)*SIN(23.45) ) !太陽の赤緯 ← 黄経λ
LET W0= ACOS( (SIN(-.83) -SIN(φ)*SIN(δ)) /(COS(φ)*COS(δ)) ) !南中~SunSetの角度
!
LET Jset= Jtransit +W0/360
LET Jrise= Jtransit-(Jset-Jtransit)
!
PRINT USING "####/##/## ":YY,MM,DD;
PRINT "日の出 南中 入 ";
CALL HM(Jrise)
CALL HMS(Jtransit)
CALL HM(Jset)
PRINT USING " Jx=#######.#####":Jx;
PRINT USING " Jrise=#######.##### Jtransit=#######.##### Jset=#######.#####":Jrise,Jtransit,Jset;
PRINT " 太陽の赤緯δ=";δ;
PRINT "時角ω=";W0
END SUB
!-------------------------
! 時、分 の表示
!-------------------------
SUB HM(J)
LET h=24*FP(J)
LET m=ROUND(60*FP(h))
LET h=IP(h)
IF m=60 THEN
LET m=0
LET h=h+1
END IF
PRINT USING " ##:%%": h,m;
END SUB
!-------------------------
! 時、分、秒 の表示
!-------------------------
SUB HMS(J)
LET h=24*FP(J)
LET m=60*FP(h)
LET h=IP(h)
LET s=ROUND(60*FP(m))
LET m=IP(m)
IF s=60 THEN
LET s=0
LET m=m+1
IF m=60 THEN
LET m=0
LET h=h+1
END IF
END IF
PRINT USING " ##:%%:%%": h,m,s;
END SUB
!-------------------------------------------------------------
!Julian Day Number( JDN 1900.3.1~ 2100.2.28 ) 近年の範囲
!-------------------------------------------------------------
!西暦年月日 YY.MM.DD から、ユリウス日 J_ の計算
FUNCTION JDN00( YY,MM,DD)
IF 2< MM THEN
LET WM=MM+1
LET WY=YY
ELSE
LET WM=MM+13
LET WY=YY-1
END IF
LET JDN00=INT(365.25*WY)+INT(30.6001*WM)+DD+1720982
END FUNCTION
END !下の画像は、クリックして(1/1)にした後で、さらに、クリック、又は、保存しないと原寸になりません。
|
|