NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 のバイナリ形式のデータを Fortran 95 で読み込んでみました。
過去には Ruby や Python でも行いましたが。
0. 前提条件
- LMDE 3 (Linux Mint Debian Edition 3; 64bit) での作業を想定。
- GCC 6.3.0 (GFortran 6.3.0) でのコンパイルを想定。
1. 天文暦バイナリデータについて
当ブログ過去記事を参照のこと。
また、天文暦データには各種バージョンが存在するが、日本の国立天文台が現在使用している DE430 を当方も使用する。
2. ソースコードの作成
- 以下は実行部分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
|
モジュールを含めた全てのファイルは GitHub にアップしている。(当然ながら、モジュール部分の方が計算の本質となっている)
3. ソースコードのビルド
1
|
|
- やり直す場合は、
make clean
してから。
4. 準備
- JPL 天文暦バイナリデータ
JPLEPH
を実行ファイルと同じディレクトリ内に配置。
(参照「JPL 天文暦データのバイナリ化!」)
5. 実行方法
1
|
|
A
は天体番号。(1
〜13
; 省略可)
(省略時は11
とみなす)- 水星 (Mercury)
- 金星 (Venus)
- 地球 - 月の重心 (Earth-Moon barycenter)
- 火星 (Mars)
- 木星 (Jupiter)
- 土星 (Saturn)
- 天王星 (Uranus)
- 海王星 (Neptune)
- 冥王星 (Pluto)
- 月(地心) (Moon (geocentric))
- 太陽 (Sun)
- 地球の章動(1980年IAUモデル) (Earth Nutations in longitude and obliquity(IAU 1980 model))
- 月の秤動 (Lunar mantle libration)
JD
はユリウス日(Julian Day)。(省略可)
(省略時はシステム時刻を UTC とみなしたユリウス日)
以下、実行例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
|
以上、