つぎはntupleをバッチで作ってみましょう。ntupleでは変数の型が色々なも のを混ぜて作ることも出来ますが、とりあえずここでは変数はすべて実数型で あるという簡単な場合について解説します。
まずntupleを定義する前にそれらを書き出すRZファイルを開いておきます。 ntupleはメモリーに入りきれなくなるとそのファイルに書き出していきます。
CALL HROPEN( 1, 'NTDEMO', 'ntdemo.hbook', 'N', 1024, istat )
LUN(論理機器番号)1を使ってディレクトリ//NTDEMOを開きます。ファイル名は ntdemo.hbo okで、'N"で新規に開くことを指示しています。1024は論理レコー ド長でいつも1024で構いません。整数型変数istatに終了状態が返ります。0な らうまくいったことを表します。ファイルの用意が出来たので次にntupleを宣 言します。
CHARACTER*2 TAGS( 3 ) DATA TAGS/'X ','Y ','DE'/ CALL HBOOKN( 3001, 'ntuple demo', 3, 'NTDEMO', 10000, TAGS )
ntupleをID3001で宣言します。次はタイトル、その次が変数の数、次がRZファ イルのディレクトリで、先にHROPENで開いたときに使った名前です。次の 10000がメモリーに確保される領域で、ここが一杯になるとファイルに書き出 されます。最後のTAGSは文字列変数の配列で、変数名を定義しています。長さ は最長8文字までです。
これでntupleは定義されました。後はデータを書き込んでいくだけです。 HFNを使います。
DIMENSION X(3) CALL HFN( 3001, X )
配列を使ってそれぞれの変数をフィルします。Xの配列要素はそれぞれ適当な 値を代入されていなければなりません。あたりまえですが。
フィルが終わればファイルに書き出して終わりです。
CALL HROUT( 0, icycle, ' ' ) CALL HREND( 'NTDEMO' )
これで一通りの手順は終わりです。後はntdemo.hbookをPAWで読み込んで作業 します。このRZファイルにはヒストグラムも同時に保存することが出来ます。 そのままではややこしいのでファイルの中にサブディレクトリを作って保存場 所を管理することも出来ます。
CALL HMDIR( 'HISTO', ' ' ) CALL HCDIR( 'HISTO', ' ' )
移動したところでヒストグラムやntupleを定義します。読みだす場合には既に 見たようにPAWが面倒を見てくれます。