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単位)/伏角(度単位)/偏角(度単位)
                  の値がその順序で配列に入れられる.