目次
概要
機能
回転楕円体格子系のための格子変換内挿テーブル生成パッケージ (SPRING; SPheroidal Coordinates Regridding INterpolation table Generator) は以下の機能を提供する。
・異なる解像度や格子系を持ったモデル間でのデータ交換に用いられる格子変換内挿テーブルの生成
格子系は次の4つに分類される。
名称 |
英語表記 |
定義 |
例 |
矩形 |
Lattice |
緯経線で構成される格子系。緯度方向及び経度方向の分割数はそれぞれ任意の経度及び緯度において一定。 |
MIROC |
ラスター |
Raster |
各格子が(高解像度の)等間隔緯度経度格子の集合で定義される格子系。 |
CaMa-Flood |
凸多角形 |
Convex |
凸多角形(全ての内角が180°未満の多角形)のみで構成される格子系。ただし矩形格子系を除く。 |
NICAM、COCO |
凹多角形 |
Concave |
凹多角形(180°以上の内角を持つ多角形)又はマルチポリゴンを含む格子系。 |
世界地図、地質図 |
矩形格子系
ラスター格子系
凸多角形格子系
凹多角形格子系
現在対応している組み合わせは次のとおりである。
|
矩形 |
ラスター |
凸多角形 |
凹多角形 |
矩形 |
o |
o |
x |
x |
ラスター |
|
x |
o |
x |
凸多角形 |
|
|
x |
x |
凹多角形 |
|
|
|
x |
未対応のものも順次実装していく予定。
言語
ソースコードは
Fortran90と
Cで書かれている。したがって利用にはそれらのコンパイラが必要である。
外部ライブラリ等は不要。
データの形式
設定ファイルやログファイル等を除き、入出力はプレーンバイナリのみ対応している。
パッケージ
+
SPRING.20210614.tar.gz
+
SPRING.20210623.tar.gz
更新履歴
[20210623]
- ライブラリ出力の手続きのバグを除去しました。
コンパイルと実行
コンパイル
1. ダウンロードしたパッケージを展開してディレクトリ内に移動する
2. "common.mk"を編集する
"DIR_TOP"をSPRINGのディレクトリにする。
3. "adm/Mkinclude"を編集する
コンパイルのコマンドやオプションを確認し、必要に応じて変更する。
4. コンパイルする
実行
ディレクトリ"src/regrid"内のメインプログラム"main"を実行する。
コマンドライン引数に設定ファイルのパスを与える。
設定ファイルの書式
ブロックとキー
ブロックの宣言
ブロック名を指定し、その中にキーと値を記述する。ブロックの始まりと終わりはそれぞれ「[block_name]」、「[end block_name]」で宣言する。
(例)
キーは値を一つしか指定できないものと複数の値を指定できるものがある。
値を一つしか指定できないキー
上の例のように、単に「key: value」と書く。
複数の値を指定可能なキー
値はデフォルトの並びを持つがいずれも省略可能である。またタグを指定することで順番に関係なく値を設定することが出来る。タグを指定した場合、それより後ろの値はタグを省略できない。
(例)
変数型
本稿では、変数型を次のように表記する。
表記 |
説明 |
char |
文字列 |
int |
基本整数型 |
int1 |
1バイト整数 |
int2 |
2バイト整数 |
int4 |
4バイト整数 |
int8 |
8バイト整数 |
real |
4バイト浮動小数点数 |
dble |
8バイト浮動小数点数 |
log |
基本論理型 |
File |
ファイルの基本情報(要素数を含まない) |
File* |
ファイルの基本情報(要素数を含む) |
「File」及び「File*」について
ファイルの基本情報。
ファイル形式は今のところプレーンバイナリのみ対応。
「File」で指定可能な変数
変数 |
キー |
変数型 |
デフォルト値 |
備考 |
パス |
path |
char |
長さゼロの文字列 |
クォーテーション又はダブルクォーテーションで挟むこと。 |
データ型 |
dtype |
char |
データにより異なる |
['int1'|'int2'|'int4'|'int8'|'real'|'dble'] |
レコード番号 |
rec |
int |
1 |
|
エンディアン |
endian |
char |
リトルエンディアン |
['little'|'big'] |
「File*」で指定可能な変数
変数 |
キー |
変数型 |
デフォルト値 |
備考 |
パス |
path |
char |
長さゼロの文字列 |
クォーテーション又はダブルクォーテーションで挟むこと。 |
データ型 |
dtype |
char |
データにより異なる |
['int1'|'int2'|'int4'|'int8'|'real'|'dble'] |
レコード番号 |
rec |
int |
1 |
|
エンディアン |
endian |
char |
リトルエンディアン |
['little'|'big'] |
要素数 |
length |
int8 |
0 |
配列のサイズと言い換えても良い。 |
キーが指定されない値は、左から1番目:パス、2番目:データ型、3番目:レコード番号、4番目:エンディアン、5番目:要素数 として解釈される。
デフォルト値から変更する必要が無ければ省略して良い。
(例
1)
f_lon_bound: "/home/user/miroc/lon_left.bin", dble, 1, big
-> パス :"/home/user/miroc/lon_left.bin"
データ型 :dble (
8バイト浮動小数点数)
レコード番号:1
エンディアン:big (ビッグエンディアン)
(例
2)
f_grid_idx: "/home/user/miroc/idx.bin"
-> パス :"/home/user/miroc/idx.bin"
データ型 :int4 (
4バイト整数)
レコード番号:1
エンディアン:little (リトルエンディアン)
データ型、レコード番号、エンディアンにはデフォルト値が与えられる。
(例
3)
f_coord_default: path="/home/user/nicam/gl5rl2.bin", endian=big
f_x_vertex: rec=1
f_y_vertex: rec=2
f_z_vertex: rec=3
-> パス :"/home/user/nicam/gl5rl2.bin"
データ型 :dble (
8バイト浮動小数点数)
レコード番号: x, y, z それぞれ 1, 2, 3
エンディアン: big (ビッグエンディアン)
データごとにデフォルト値を設定するためのキーが用意されており(次項参照)、ここでは
f_x_vertexなどのデフォルト値を
f_coord_defaultで設定している。
f_coord_defaultでも設定されなかった変数には元のデフォルト値が与えられる。
つまり、各データについて次のような処理が行われると考えればよい。
(1) プログラムのデフォルト値が与えられる
(2) ユーザーが設定したデフォルト値で上書きされる
(3) ユーザーが設定した個別の値で上書きされる
各ブロックの設定
矩形格子系
ブロック「grid_system_lattice」で記述する。
キー |
型 |
必須 |
複数回指定可 |
説明 |
デフォルト値 |
id |
char |
|
|
格子系の識別子。 |
|
nx |
int |
o |
|
経度方向の格子数。 |
|
ny |
int |
o |
|
緯度方向の格子数。 |
|
west |
dble |
(o) |
|
東端(度)。 |
|
east |
dble |
(o) |
|
西端(度)。 |
|
south |
dble |
(o) |
|
南端(度)。 |
|
north |
dble |
(o) |
|
北端(度)。 |
|
dir |
char |
|
|
相対パスの基点となるディレクトリ。 |
|
f_coord_default |
File |
|
|
f_lon_bound及びf_lat_boundのデフォルト値。 |
'', 'dble', 1, 'little' |
f_lon_bound |
File |
(o) |
|
格子線(経線)の経度。 |
|
f_lat_bound |
File |
(o) |
|
格子線(緯線)の緯度。 |
|
coord_unit |
char |
|
|
座標の単位。['degree'|'radian'] |
'degree' |
f_grid_idx_default |
File |
|
|
f_grid_idxのデフォルト値。 |
'', 'int4', 1, 'little' |
f_grid_val_default |
File |
|
|
f_grid_valのデフォルト値。 |
'', 'dble', 1, 'little' |
f_grid_idx |
File |
|
o |
格子番号。 |
f_grid_idxの値 |
f_grid_val |
File |
|
o |
格子の値。 |
f_grid_valの値 |
grid |
|
|
o |
f_grid_idx及びf_grid_valの付属情報。 有効なキー:region、input、idxmin、idxmax |
|
origin_y |
char |
|
|
格子系のy軸の始点。['south'|'north'] |
'south' |
idx_miss |
int8 |
|
|
格子番号の欠損値。 |
|
[基本設定]
dir
ファイルやディレクトリを相対パスで指定した時、この値が相対パスの基点となる。
[格子系全体の情報]
id
格子系を表す識別子。ログ以外の出力には影響しない。
nx、ny [必須]
それぞれ経度方向、緯度方向の格子数。
west、east、f_lon_bound [準必須]
westと
east、又は
f_lon_boundのどちらかを必ず指定する。
west、east:
それぞれ東端、西端。等間隔の格子系に対してはこれを指定すればよい。このとき
f_lon_boundは指定しない。単位は度。
f_lon_bound:
緯度方向の格子線の経度データ。非等間隔格子に対してはこれを与える。このとき
westと
eastは指定しない。
大きさ
nx+1の
1次元配列。単位はデフォルトでは度(
coord_unitで指定可能)。
south、north、f_lat_bound
同上。
coord_unit
座標の単位。
'degree'(デフォルト)又は
'radian'を指定する。
[格子の情報]
f_grid_idx
格子番号データ。基本的には形状
(nx, ny)の
2次元配列。
gridで格子系における領域やファイル上の位置を指定できる。省略すると格子番号が自動的に与えられる(「
格子番号の自動割り振り」参照)。
f_grid_idxは任意の回数指定可能。
f_grid_val
(未実装)
origin_y
Y軸の原点。
'south'(デフォルト)又は
'north'を指定する。
f_grid_idxや
f_grid_valはこれに従うものとみなされる。例えば
'south'のとき、
f_grid_idxで与えられた
2次元配列は、第
2次元のインデックス
1が南、
nyが北に対応するものとして解釈される。
f_grid_idxを指定しないとき格子番号が自動的に割り振られるが、これもこの値に依存する(「
格子番号の自動割り振り」参照)。
なお
f_lat_boundのデータは必要に応じて内部で反転されるので格納順はどちらでも問題無い。
idx_miss
格子番号の欠損値。
f_grid_idxでこの番号を与えられた格子は欠損格子として扱われ、内挿テーブルには含まれず、検証データでも欠損値が与えられる。
grid
格子データ(
f_grid_idx、
f_grid_val)の付属情報。基本的に不要だが、入力データの一部を読み込ませたいときや、定義した格子系の一部を対象として計算を行いたいときに用いる。
regionでは格子系における入力データの位置を定義する。記述方法は次のとおりで、
x方向及び
y方向の始点と終点を文字列で指定する。各値はカンマないし半角スペースで区切る。
region = "
x_begin,
x_end,
y_begin,
y_end"
inputではデータの読み込み範囲を指定する。ファイルに格納された配列の一部のみを入力として与えたいとき、これを指定する。配列形状が
(sz1, sz2)で、その中の
(l1:u1, l2:u2)を入力としたいとき、次のように文字列で記述する。各値はカンマないし半角スペースで区切る。
input = "
sz1,
l1,
u1,
sz2,
l2,
u2"
格子番号の自動割り振り
f_grid_idxなどで格子番号を与えなかった場合、格子番号が自動的に割り振られる。
経度方向については東から西へ増加する。
緯度方向については、
origin_yが
'south'のとき南から北へ増加し、
'north'のときは逆になる。
なお常に経度方向が優先される。
ラスター格子系
ブロック「grid_system_raster」で記述する。
キー |
型 |
必須 |
複数回指定可 |
説明 |
デフォルト値 |
id |
char |
|
|
座標系のID。 |
|
nx |
int |
o |
|
経度方向の格子数。 |
|
ny |
int |
o |
|
緯度方向の格子数。 |
|
west |
dble |
o |
|
東端(度)。 |
|
east |
dble |
o |
|
西端(度)。 |
|
south |
dble |
o |
|
南端(度)。 |
|
north |
dble |
o |
|
北端(度)。 |
|
dir |
char |
|
|
相対パスの基点となるディレクトリ。 |
|
f_raster_idx_default |
File |
|
|
f_raster_idxのデフォルト値。 |
'', 'int4', 1, 'little' |
f_raster_val_default |
File |
|
|
f_raster_valのデフォルト値。 |
'', 'dble', 1, 'little' |
f_raster_idx |
File |
o |
o |
ラスターの格子番号。 |
f_raster_idxの値 |
f_raster_val |
File |
|
o |
ラスターの値。 |
f_raster_valの値 |
raster |
|
|
o |
f_raster_idx及びf_raster_valの付属情報。 有効なキー:region, input, idxmin, idxmax |
|
f_grid_idx_default |
File* |
|
|
f_grid_idxのデフォルト値。 |
'', 'int4', 1, 'little', 0 |
f_grid_val_default |
File |
|
|
f_grid_valのデフォルト値。 |
'', 'dble', 1, 'little' |
f_grid_idx |
File* |
|
o |
格子番号。 |
f_grid_idx_defaultの値 |
f_grid_val |
File |
|
o |
格子の値。 |
f_grid_val_defaultの値 |
grid |
|
|
o |
f_grid_idx及びf_grid_valの付属情報。 有効なキー:input, idxmin, idxmax |
|
origin_y |
char |
|
|
格子系のy軸の始点。['south'|'north'] |
'south' |
idx_miss |
int8 |
|
|
格子番号の欠損値。 |
|
[基本設定]
dir
ファイルやディレクトリを相対パスで指定した時、この値が相対パスの基点となる。
[格子系全体の情報]
id
格子系を表す識別子。ログ以外の出力には影響しない。
nx、ny [必須]
それぞれ経度方向、緯度方向の格子数。
west、east、south、north [必須]
それぞれ東端、西端、南端、北端。
raster格子は格子線が等間隔という制約があるので、
lattice格子とは異なり
f_lon_boundや
f_lat_boundで格子線の座標を指定することができない。
f_raster_idx
ラスターの格子番号データ。基本的には形状
(nx,ny)の
2次元配列。
rasterで格子系における領域やファイル上の位置を指定できる。
f_raster_val
(未実装)
raster
ラスターデータ(
f_raster_idx、
f_raster_val)の付属情報。基本的に不要だが、入力データの一部を読み込ませたいときや、定義した格子系の一部を対象として計算を行いたいときに用いる。
仕様は
[grid_system_lattice]の
gridと同じ。
[格子の情報]
f_grid_idx
格子番号データ。格子が
2次元配列状に整列している
lattice格子系とは異なり、
raster格子系は格子の並びに関してそういった制約が無い。従ってここでは配列の長さを明記する必要がある。記述の仕方はエンディアンなどと同様である(詳細は「
『File』について」を参照)。
f_grid_val
(未実装)
grid
格子データ(
f_grid_idx、
f_grid_val)の付属情報。仕様は
[grid_system_lattice]の
gridとほぼ同じだが、格子系上の領域を定義する
regionは指定できない。これは
raster格子系においては格子が
2次元配列状に整列するという制約がないためである。
凸多角形格子系
ブロック「grid_system_convex」で記述する。
キー |
型 |
必須 |
複数回指定可 |
説明 |
デフォルト値 |
id |
char |
|
|
座標系のID。 |
|
nij |
int8 |
|
|
格子系全体での格子数。 |
|
np |
int |
o |
|
格子系全体での頂点の最大数。 |
|
dir |
char |
|
|
相対パスの基点となるディレクトリ。 |
|
f_coord_default |
File* |
|
|
f_x_vertex、f_y_vertex及びf_z_vertexのデフォルト値。 |
'', 'dble', 1, 'little', 0 |
f_x_vertex |
File* |
o |
o |
頂点のx座標。 |
f_coord_defaultの値 |
f_y_vertex |
File |
o |
o |
頂点のy座標。 |
f_coord_defaultの値 |
f_z_vertex |
File |
(o) |
o |
頂点のz座標。 |
f_coord_defaultの値 |
coord_sys |
char |
o |
|
座標系。['spherical'|'cartesian'] |
|
coord_unit |
char |
|
|
座標の単位。['degree'|'radian'|'m'|'km'] |
|
coord_miss |
dble |
|
|
座標の欠損値。 |
NaN |
f_arc_default |
File |
|
|
f_arcのデフォルト値。 |
'', 'int4', 1, 'little' |
f_arc |
File |
|
o |
格子線の種類。 |
f_arc_defaultの値 |
arc_parallel |
log |
|
|
端点の緯度が等しい格子線を緯線(小円弧)として扱う。 |
.false. |
f_grid_idx_default |
File |
|
|
f_grid_idxのデフォルト値。 |
'', 'int4', 1, 'little' |
f_grid_val_default |
File |
|
|
f_grid_valのデフォルト値。 |
'', 'dble', 1, 'little' |
f_grid_idx |
File |
|
o |
格子番号。 |
f_grid_idx_defaultの値 |
f_grid_val |
File |
|
o |
格子の値。 |
f_grid_val_defaultの値 |
grid |
|
|
o |
各ファイルの付属情報。 有効なキー:region, input, idxmin, idxmax |
|
idx_miss |
int8 |
|
|
格子番号の欠損値。 |
|
[基本設定]
dir
ファイルやディレクトリを相対パスで指定した時、この値が相対パスの基点となる。
[格子系全体の情報]
id
格子系を表す識別子。ログ以外の出力には影響しない。
nij
格子の数。
np [必須]
頂点の最大数。
coord_sys [必須]
座標系。'spherical'で緯度経度座標系を、'cartesian'で三次元直交座標系を指定する。
coord_unit
座標の単位。座標系により指定可能な値が異なる(下表)。
表 指定可能な座標系とそれに対する入力
座標系 |
coord_sysの値 |
f_*_vertexのうち指定するもの |
coord_unitの取り得る値 |
緯度経度座標系 |
'spherical' |
x, y |
'degree'又は'radian' |
三次元直交座標系 |
'cartesian' |
x, y, z |
'm'又は'km' |
※三次元直交座標系は未実装
f_x_vertex、f_y_vertex、f_z_vertex [必須]
頂点の座標。前二者は常に必須、
f_z_vertexは座標系により必須の場合と指定不可の場合とがある。
f_coord_defaultでデフォルト値を指定可能。
coord_miss
座標の欠損値。非構造格子系では頂点の個数は必ずしも一定ではないため、バイナリファイルで座標を与える場合、欠損値が必要となる。
f_arc、arc_parallel
格子線の種類。
凸多角形で構成される非構造格子系の格子線は大円弧(球の中心を通る平面と球面との交線)であることが多いが、海洋モデル
COCOの三極座標系や
MODISのサンソン図法で定義される格子系のように、大円弧と小円弧(水平な平面と球面との交線)が混在している場合がある。このような場合、各格子線の種類(大円弧又は小円弧)を記録したものを
f_arcで与える。
格子線の種類は形状
(nij,np)の配列で与える。第
2次元における並びは座標データ(
f_x_vertexなど)における頂点の並びと対応させる。例えば座標が「点A、点B、点C」の順に格納されていた場合、格子線の並びは「辺AB、辺BC、辺CA」とする。
整数で与えるのが望ましいが、浮動小数点数でも可。浮動小数点数で与えた場合、内部で
int関数によって整数に変換される。値と種類との対応は下表のとおり。ただし
Meridianは明示的に与える必要はなく、
Normalか
Parallelのいずれかで与えればよい。
値 |
種類 |
定義 |
備考 |
1 |
Normal |
大円弧。球の中心を通る平面と球面との交線の一部。 |
LonLat平面上では曲線となる。 |
2 |
Parallel |
小円弧。水平面と球面との交線の一部。 |
LonLat平面上では水平な線分となる。端点の緯度が等しいことが必要条件。 |
3 |
Meridian |
球の中心を通る鉛直面と球面との交線の一部。 |
LonLat平面上では鉛直な線分となる。端点の経度が等しい、または少なくとも一方が極であることが必要条件。 |
(LonLat平面:水平軸に経度(Lon)、鉛直軸に緯度(Lat)を取った2次元の座標系)
また、端点の緯度が等しい格子線は全て
Parallelであることが分かっている場合は、ファイルを省略して(
f_arcを指定せず)単に
arc_parallelの値を
.true.とすれば良い。
[格子の情報]
f_grid_idx
格子番号データ。省略した場合、座標データの格納順に応じて格子番号が自動的に割り振られる。
f_grid_val
(未実装)
grid
格子データ(
f_grid_idx、
f_grid_val)の付属情報。基本的に不要だが、入力データの一部を読み込ませたいときや、定義した格子系の一部を対象として計算を行いたいときに用いる。
仕様は
[grid_system_lattice]の
gridとほぼ同じだが、こちらは
1次元配列に関するものなので、
regionと
inputは次のように記述される。
region = "x_bgn, x_end"
input = "sz1, l1, u1"
格子変換テーブル
ブロック「regridding_table」で記述する。
キー |
型 |
必須 |
複数回指定可 |
説明 |
デフォルト値 |
action |
char |
o |
|
入力・出力のどちらか。['read'|'write'] |
|
dir |
char |
|
|
相対パスの基点となるディレクトリ。 |
|
f_attr_path |
char |
o |
|
変換内挿テーブルの付属情報を記録するファイルのパス。 |
|
f_idx_default |
File |
|
|
f_send及びf_recvのデフォルト値。 |
'', 'int4', 1, 'little' |
f_val_default |
File |
|
|
f_area及びf_coefのデフォルト値。 |
'', 'dble', 1, 'little' |
f_send |
File |
|
o |
変換内挿テーブル。送信側格子の格子番号。 |
f_idx_defaultの値 |
f_recv |
File |
|
o |
変換内挿テーブル。受信側格子の格子番号。 |
f_idx_defaultの値 |
f_area |
File |
|
o |
変換内挿テーブル。格子の重複面積。 |
f_val_defaultの値 |
f_coef |
File |
|
o |
変換内挿テーブル。格子の重複面積割合。 |
f_val_defaultの値 |
division |
char |
|
|
変換内挿テーブルの分割方法。['send'|'recv'|'none'] |
'none' |
coef_grid |
char |
|
|
重複面積率をどちらの格子について求めるか。['send'|'recv'] |
'recv' |
coef_sum |
char |
|
|
これを指定するとき、重複面積率の和がこの値となるよう補正する。 |
1.0 |
allowEmpty |
log |
|
|
テーブルのサイズが0であるとき、これを許容する。 |
.false. |
vrf_send_format |
char |
|
|
送信側格子の検証データの整形方法。['grid'|'index'] |
'grid' |
f_vrf_send_idx_default |
File |
|
|
f_vrf_send_idxのデフォルト値。 |
'', 'int4', 1, 'little' |
f_vrf_send_val_default |
File |
|
|
送信側格子の検証データのデフォルト値。 |
'', 'dble', 1, 'little' |
f_vrf_send_idx |
File |
|
o |
送信側格子の検証データ整形用の格子番号データ。 |
f_vrf_send_idx_defaultの値 |
f_vrf_send_area |
File |
|
o |
送信側格子の検証データ。重複面積の和。 |
f_vrf_send_val_defaultの値 |
f_vrf_send_rerr |
File |
|
o |
送信側格子の検証データ。重複面積の和の、格子面積に対する相対誤差。 |
f_vrf_send_val_defaultの値 |
f_vrf_send_coef |
File |
|
o |
送信側格子の検証データ。重複面積率の和。 |
f_vrf_send_val_defaultの値 |
vrf_recv_format |
char |
|
|
受信側格子の検証データの整形方法。['grid'|'index'] |
'grid' |
f_vrf_recv_idx_default |
File |
|
|
f_vrf_recv_idxのデフォルト値。 |
'', 'int4', 1, 'little' |
f_vrf_recv_val_default |
File |
|
|
受信側格子の検証データのデフォルト値。 |
'', 'dble', 1, 'little' |
f_vrf_recv_idx |
File |
|
o |
受信側格子の検証データ整形用の格子番号データ。 |
f_vrf_recv_idx_defaultの値 |
f_vrf_recv_area |
File |
|
o |
受信側格子の検証データ。重複面積の和。 |
f_vrf_recv_val_defaultの値 |
f_vrf_recv_rerr |
File |
|
o |
受信側格子の検証データ。重複面積の和の、格子面積に対する相対誤差。 |
f_vrf_recv_val_defaultの値 |
f_vrf_recv_coef |
File |
|
o |
受信側格子の検証データ。重複面積率の和。 |
f_vrf_recv_val_defaultの値 |
vrf_miss |
dble |
|
|
検証データの欠損値。 |
NaN |
dir_im |
char |
|
|
中間ファイルのパスの基点となるディレクトリ。 |
|
removeIntermediates |
log |
|
|
中間ファイルを削除する。 |
.true. |
[基本設定]
action [必須]
内挿テーブルを新しく作る場合は
'write'、既にあるものを使ってデータの内挿を行う場合は
'read'を指定する。
現在内挿は実装されていないので
'write'のみ有効。
dir
ファイルやディレクトリを相対パスで指定した時、この値が相対パスの基点となる。
[付属情報]
f_attr_path
内挿テーブルの長さなどの付属情報を出力する。テキストファイル。
[内挿テーブル]
f_send、f_recv、f_area、f_coef
内挿テーブルを構成する
4つのデータ。それぞれ送信側格子番号、受信側格子番号、重複面積、内挿係数。
f_idx_defaultで
f_sendと
f_recvのデフォルト値を、
f_val_defaultで
f_areaと
f_coefのデフォルト値をそれぞれ設定できる、
division
内挿テーブルは格子系に基づいて分割して出力することができる。その格子系を
'send'又は
'recv'で指定する。
'none'(デフォルト)のとき分割しない。
coef_grid
内挿係数は、重複面積を送信側格子ないし受信側格子の面積で除して得られる。
'send'のとき送信側格子、
'recv'(デフォルト)のとき受信側格子で除す。
coef_sum
(未実装)
allowEmpty
2つの格子系が重複部を持たない場合など内挿テーブルの長さがゼロとなるケースが存在するが、これを許容するとき
.true.とする。
[検証データ]
重複面積の和などを集計して整形したもの。これを図化するなどして、内挿テーブルが正しく作成されているかを大まかに確認できる。
以下は送信側格子の検証データに関する説明であるが、受信側格子についても全く同様である。
vrf_send_format
整形方法。
'grid'又は
'index'を指定する。
'grid':定義された格子系に従って整形される。整形用のデータは不要。例えば送信側格子が
lattice gridで、解像度が
nx=256、ny=128のとき、検証データは
(256,128)の
2次元配列で出力され、その並びは送信側格子の格子番号の並びに対応する。
'index':
f_vrf_send_idxで与えられた格子番号データに従って整形される。
f_vrf_send_idx
入力データ。整形方法(
vrf_send_format)を
'index'としたとき、整形用の格子番号データをこれで与える。
f_send_idx_defaultでデフォルト値を指定できる。
f_vrf_send_area、f_vrf_send_rerr、f_vrf_send_coef
出力データ。それぞれ重複面積の和、重複面積の和の格子面積に対する相対誤差、内挿係数の和。
f_send_val_defaultでデフォルト値を指定できる。
vrf_miss
欠損値。欠損格子(格子番号が欠損値である格子)に与えられる。送信側・受信側格子両方の検証データに共通。
[中間データ]
入力ファイルや計算領域が複数に分かれている場合、内挿テーブルはそれぞれのデータないし領域に対して別々に作成されて最後に統合される。その際、別々に作られた内挿テーブル(及び検証データ)は一度中間ファイルとして書き出される。
dir_im、removeIntermediates
中間ファイルの親ディレクトリは
dir_imで指定可能。指定しない場合他の出力ファイルから自動的に決定されるが、安全のため中間ファイル用のディレクトリを用意することをお勧めする。
removeIntermediatesが
.true.のとき(デフォルト)、中間ファイルは自動的に削除される。
なお計算領域が分割されない場合などは中間ファイルは作成されない。