IGRF 計算


GIGRF, IGRFC, IGRFM, SDGRF, SPGRF, SIGRF
1.機 能
  ・gigrf ルーチンは,IGRF世代番号によるIGRFモデルの選択と計算年の指定を行い,
    計算の準備を整える.各世代のガウス係数データは,世代番号を??として,
      /home/SHARE/data/IGRFCOEF/igrf??.coef (??: 01-10)
    のファイルから読み込まれる.
  ・igrfc ルーチンは,緯度・経度・高度を与えて指定済のIGRFモデルの計算を行い,
    全磁力値を返す.
  ・igrfm ルーチンは,直前に igrfc ルーチンによる計算を行った点における磁場ベク
    トルを,6成分の値(X, Y, Z, H, Inc, Dec)として返す.
  ・sdgrf/spgrf/sigrf の各ルーチンは,DGRF/PGRF/予測値モデルIGRF の種別によ
    るIGRFモデルの選択(第8世代まで)と計算年の指定を行い,計算の準備を整える.

      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 楕円体での計算を行う.

 (注) 現在,IGRFのガウス係数データは,第10世代(2005年以降の予測値を含む)まで
     が設定されている.

2.呼出し手順と引数

      call gigrf(ngen, year)
  ngen   [int]    モデルの世代番号を与える.
  year   [float]  計算年を与える.

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

      call sdgrf(year)
      call spgrf(year)
      call sigrf(year)
  year   [float]  各モデルの計算年を与える.各モデルとも未定義の計算年に対して
                  は,警告メッセージが出て直近のデータを用いて外挿が行われる.
                  予測値モデルIGRFは 1955〜2005年,DGRFは 1945〜1990年,PGRFは
                  1975〜1995年の範囲が,正規の計算年範囲であり,それ以外の計算
                  は,gigrf ルーチンを用いて計算する.