IGRF 計算
GIGRF, SDGRF, SPGRF, SIGRF, TYEAR, IGRFC, IGRFM
1.機 能
・gigrf ルーチンは,IGRF世代番号によるIGRFモデルの選択と計算年の指定を行い,
計算の準備を整える.各世代のガウス係数データは,世代番号を??として,
/home/SHARE/data/IGRFCOEF/igrf??.coef (??: 01-99)
のファイルから読み込まれる.IGRF世代番号によるIGRFモデルの選択のためには,
その世代番号に対するガウス係数データが用意されている必要がある.
・sdgrf/spgrf/sigrf の各ルーチンは,DGRF/PGRF/予測値モデルIGRF の種別によ
るIGRFモデルの選択(第8世代まで)と計算年の指定を行い,計算の準備を整える.
・tyear ルーチンは,IGRFモデルとその基準年の選択を維持しつつ,計算年のみを
変更する.
・igrfc ルーチンは,緯度・経度・高度を与えて指定済のIGRFモデルの計算を行い,
全磁力値を返す.
・igrfm ルーチンは,直前に igrfc ルーチンによる計算を行った点における磁場ベク
トルを,6成分の値(X, Y, Z, H, Inc, Dec)として返す.
IGRF計算に用いる地球モデルは,ベッセル楕円体ともWGS84楕円体とも異なる IAU
1966楕円体(長半径 6378.160 km,偏平率 1/298.25)が推奨されてきたが,第9世
代からは,WGS84楕円体が推奨されるようになった.本ルーチンでは,それに従い,
gigrf ルーチンを使用した場合に WGS84楕円体(長半径 6378.137 km, 偏平率 1/
298.25722)[現用の WGS84楕円体は,GRS80楕円体と 殆ど差がなくなっている] で
計算する.なお,sdgrf/spgrf/sigrf の各ルーチン使用の場合には,従来どおり
IAU 1966 楕円体での計算を行う.
2.呼出し手順と引数
call gigrf(ngen, year)
ngen [int] モデルの世代番号を与える.
year [float] 計算年を与える.
call sdgrf(year)
call spgrf(year)
call sigrf(year)
year [float] 各モデルの計算年を与える.各モデルとも未定義の計算年に対して
は,警告メッセージが出て直近のデータを用いて外挿が行われる.
予測値モデルIGRFは 1955〜2005年,DGRFは 1945〜1990年,PGRFは
1975〜1995年の範囲が,正規の計算年範囲であり,それ以外の計算
は,gigrf ルーチンを用いて計算する.
call tyear(year)
year [float] すでに指定したモデルに対して,そのモデルと基準年の設定を維持
しつつ,計算年のみを変更する.世代番号で指定したモデルの場合
も5年ごとのガウス係数の組を維持した計算となる.
call igrfc(fi, fk, h, f)
fi [float] 計算点の緯度を度単位で与える.
fk [float] 計算点の経度を度単位で与える.
h [float] 計算点の高度を m単位で与える.
f [float] 計算結果.全磁力値(nT単位)を得る.
call igrfm(fm)
fm [float] 計算結果の磁場ベクトル値を受け取る配列(要素数 6)
Northward(X)/Eastward(Y)/Downward(Z) の3成分(nT単位)と
Horizontal(H)成分(nT単位)/伏角(度単位)/偏角(度単位)
の値がその順序で配列に入れられる.