データ部分は、バイナリーデータになります。CやFortran、VBAなどのプログラム言語からデータを作成する必要があります。ここでの例のように1レイヤー、1変数の場合、図に示した順番で、float型のデータをバイナリーで羅列することで作成することが出来ます。
以下には、サンプルとして上述のコントロールファイル例に対応するデータをC++言語 の出力ストリームで書き出すプログラムコードを示します。
まず、データは3次元のfloat型の配列で既に作成されているとします(Data[ ][ ][ ])。下図のように時刻t番目、X座標i番目、Y座標j番目のデータには、Data[t][i][j]でアクセスできるものとします。
GrADSのバイナリーファイルは、一つの時刻について一番下の行から順に上の行の値をfloatのバイナリデータで書き出し、間に何も挟まずに次の時刻のデータを同じように書き出すことで作成されます。左上端から(一番上の行から)書き出す必要がある場合には、コントロールファイルに“OPTIONS yrev”の行を追加して下さい。
<サンプルコード>
/* Data[t][x][y]で既に時系列のグリッドデータが格納されているとする。*/
//上記のコントロールファイルの例に合わせたデータ
const int Xnum = 20;
const int Ynum = 10;
const int Tnum = 5
int t, i, j;
float Data[Tnum][Xnum][Ynum];
//Data[ ][ ][ ]に値を格納する(省略)
for(t = 0; t < Tnum; t++)
for(j = 0; j < Ynum; j++)
for(i = 0; i < Xnum; i++)
cout.write((char*)&(Data[t][i][j]), sizeof(float));
GrADSのバイナリデータの書き出し順の説明