原子核反応データ研究開発センター(JCPRG)
VMSによるEXFORチェック実行法
Ver.1.0 2001.07.10 大林由英
Ver.1.1 2002.01.21 大塚直彦
Ver.1.2 2002.02.05 大塚直彦
Ver.2.0 2003.03.27 大塚直彦
Ver.2.1 2003.12.19 大塚直彦

本マニュアルでは、 UNIX利用経験者が IAEA核データ課のVMSマシンでEXFORの文法チェックを行うことを想定して、 簡単なVMSマシンの操作法と文法チェック法を説明する。

1. VMS上でチェックを行う計算機

HOST NAME: ndsalpha.iaea.or.at
USER ID  : sapporo

なお、 IAEAのセキュリティ強化との関係で、 現在はnucl, fox216, fox242以外からはログインできない。 ログイン、ファイル転送時ともsshを用いること。

2:チェックの概要

ndsalphaはVMSをOSとするリモートマシンであること等を考え、

  1. 編集はローカル
  2. 編集済みファイルのFTP転送
  3. リモート上でのチェック作業(orderとchex)
  4. 結果ファイルのローカルへのFTP転送

によって作業している。

下記は特に3.)に関しての作業の手順等を簡単に示した。 なお、最初に各自のディレクトリを作成し、そこで作業すること。

3:コマンド($はプロンプト)

VMSUNIX
基本操作
$ Username: sapporologin: sapporo
$ Password: *******password: *******
$ set password $ password
パスワードは数ヶ月に一回変更を要求される。変更した場合は周知を。
ファイル・ディレクトリ名の記法
[-] ..
[.] .
e9001.txt;N e9001.txt
(ワイルドカード*が使える、 ;N[整数]はファイルのバージョン、purgeコマンドで最新のバージョンのもの以外を消去できる)
ディレクトリ操作
$ create/dir [.ohtsuka] % mkdir ohtsuka
$ create/dir [.ohtsuka.test] % mkdir ohtsuka/test
$ set def sys$login % cd
$ set def [.ohtsuka] % cd ohtsuka
$ set def [.ohtsuka.test] % cd ohtsuka/test
$ show def % pwd
$ set def [-] % cd ..
$ delete ohtsuka.dir;1 % rmdir ohtsuka
注意:ディレクトリをdeleteにより削除する場合は、まず中身を空にして権限を変更: $set file ohtsuka.dir;1 /protect=(o:rwed)
ファイル操作
$ dir % ls
$ type/page (ty/p) e9001.txt % more/less e9001.txt
$ type e9001.txt % cat e9001.txt
$ delete e9001.txt;N % rm e9001.txt
$ copy e9001.txt e9001a.txt % cp e9001.txt e9001a.txt
$ zip otsuka.zip [.ohtsuka...]*.*;* % zip -r otsuka otsuka
$ backup [.otsuka...] [.otsuka.backup] % cp -r ohtsuka/* ohtsuka/backup/
$ rename e9001.txt e9001a.txt % mv e9001.txt e9001a.txt
シェル関連操作: カーソルキー上下でコマンド等入力の履歴が表示される。 よく使うコマンドは":=="を用いて定義しておくと便利。
例:
zip:==$ud4:[utilities]zip_axp.exe;1
unzip:==$ud4:[utilities]unzip.alpha_exe;1
ネットワーク操作: 現在割り当てられているIPアドレスは以下のようにして取得する。
tcpip show interface

3:チェックの内容

[コード order]

HENDELで出力したファイルには、行わなくて良い
コードの67桁以降の番号を割り振り、更に日付を4桁の西暦表記に変換する。
$run csisrspgm:order


ORDER (Version 98-1) run on 10-Jul-2001
-----------------------------------------

Input file specs------> e9001.ord (enter)
Output file specs-----> e9001.txt (enter)   ; 名前のつけ方は何でも良い。

Output file labeled
 TRANS                    20010710

E9001
のように表示されて実行終了

[コード chex]

チェックプログラム
$run csisrspgm:chex

CHEX (Version 2000-2) run on 10-Jul-2001
----------------------------------------

Input file specs----------------> e9001.txt (enter)  ;(必要な場合orderをかけた)outputファイルを

Output file specs---------------> e9001.log (enter) ;詳細のエラーメッセージ

VECOM file specs----------------> e9001.vec (enter)  ;今はおまじないで

File type: Data proc or Trans---> d (enter)     ;今はおまじないで

Print warning messages (Y/N)----> y (enter)

- First pass checking -
E9001
これで終了した場合、プログラムがFirst passチェックでエラー停止している。
   First pass completed with no fatal errors
1
 - Second pass checking -
と表示された場合は、First passに合格し、Second passチェックに入ったこと を示している。Second passチェックが終わると、合格不合格に関係なく、
 Tape statistics

   # of records------------->   1461
   # of entries------------->      5 (全エントリー数)
   # of subentries---------->     66 (全サブエントリー数)
   # of new data subentries->     34 (全データエントリー数)

という表示がでる。
あとは、 必要な訂正をe9001n.txtに加えて再度チェックを行い、エラーをつぶしてゆく。 上記にプログラムのランタイムは1エントリあたり数十秒程度であり通常は上記の ようなコマンドラインでのインタラクティブ処理で十分ワークすると考えられる。

[コード xtract]

インデックス作成プログラム
$run csisrspgm:xtract

XTRACT (Version 2000-1) - Run on 27-MAR-2003
-------------------------------------------

INPUT FILE SPECS------> e9001.txt (enter)  ;(必要な場合orderをかけた)outputファイルを

REFERENCE FILE SPECS--> e9001.idx (enter) ;出力される索引のファイル名

INPUT FILE LABELED
 TRANS             E000   20030312

ENTRY E9001
**** Only first 40 characters of REACTION stored   - SAN :   2
**** Only first 40 characters of REACTION stored   - SAN :   3
**** Only first 40 characters of REACTION stored   - SAN :   4

END LABEL FOUND WHILE LOOKING FOR ENTRY

という表示がでる。
最後のエラーはどうしてでるのか良く分からない。

4:出力の印刷

出力をUNIX上で印刷する時は、 ファイルをまずa2psなどでpostscriptにしてそれから印刷すると良い。 出力の各行は長いので、 紙を縦置きにして各レ コードが一行に収まるようにすると出力が見やすい。 たとえば、
[hogehoge@nucl]a2ps -p -f6 e9001.idx | lpr
などとすると良い。ここで-pは縦置きを、-f6はフォントの相対サイズを 示す。