入出力ファイルの位置と名前の選択

入出力ファイルのデフォルトの位置と名前をオーバーライドする場合は、 ソース・コードに変更を加えずに次の方法を使うことができます。

明示的な名前に接続されていないファイルの命名

通常なら fort.unit という形式の名前が付くファイルへ 特定の名前を指定するには、まず実行時オプションの unit_vars を設定し、 次に、個々のスクラッチ・ファイルごとに XLFUNIT_unit という形式の 名前が付いた環境変数を設定する必要があります。

Fortran プログラム内の装置番号と、ファイル・システム内のパス名とが 関連付けられます。

たとえば、Fortran プログラムに次のステートメントが入っているとします。

      OPEN (UNIT=1, FORM='FORMATTED', ACCESS='SEQUENTIAL', RECL=1024)
      ...
      OPEN (UNIT=12, FORM='UNFORMATTED', ACCESS='DIRECT', RECL=131072)
      ...
      OPEN (UNIT=123, FORM='UNFORMATTED', ACCESS='SEQUENTIAL', RECL=997)

XLFRTEOPTS="unit_vars=yes"     # Allow overriding default names.
XLFUNIT_1="/tmp/molecules.dat" # Use this named file.
XLFUNIT_12="../data/scratch"   # Relative to current directory.
XLFUNIT_123="/home/user/data"  # Somewhere besides /tmp.
export XLFRTEOPTS XLFUNIT_1 XLFUNIT_12 XLFUNIT_123

注:

  1. XLFUNIT_number 変数名は大文字でなければならず、number に先行ゼロが 付いていてはなりません。
  2. unit_vars=yes は、他に設定した実行時オプションによっては、XLFRTEOPTS 変数の値の 一部にすぎない場合もあります。 XLFRTEOPTS 値の一部になり得る他のオプションについては、実行時オプションの設定を参照してください。
  3. unit_vars 実行時オプションが no に設定されているか、未定義である場合、あるいは、 プログラムの実行時に適当な XLFUNIT_number 変数が設定されていない場合、プログラムは ファイルにデフォルトの名前 (fort.unit) を使用し、ファイルを現行ディレクトリーに入れます。

スクラッチ・ファイルの命名

すべてのスクラッチ・ファイルを特定のディレクトリーへ入れるには、TMPDIR 環境変数にその ディレクトリーの名前を設定します。 そのようにした場合、プログラムはそのディレクトリーに入っているスクラッチ・ファイルをオープンします。 これは、/tmp ディレクトリーがスクラッチ・ファイルを入れるには小さすぎる場合などに行う必要が あります。

スクラッチ・ファイルに特定の名前を指定するには、以下のことを行ってください。

  1. 実行時オプションの scratch_vars を設定します。
  2. 個々のスクラッチ・ファイルごとに XLFSCRATCH_unit という形式の名前が付いた環境変数を 設定します。

Fortran プログラム内の装置番号と、ファイル・システム内のパス名とが関連付けられます。 その場合、スクラッチ・ファイルの位置は TMPDIR 変数の影響を受けません。

たとえば、Fortran プログラムに次のステートメントが入っているとします。

      OPEN (UNIT=1, STATUS='SCRATCH', &
            FORM='FORMATTED', ACCESS='SEQUENTIAL', RECL=1024)
      ...
      OPEN (UNIT=12, STATUS='SCRATCH', &
            FORM='UNFORMATTED', ACCESS='DIRECT', RECL=131072)
      ...
      OPEN (UNIT=123, STATUS='SCRATCH', &
            FORM='UNFORMATTED', ACCESS='SEQUENTIAL', RECL=997)

XLFRTEOPTS="scratch_vars=yes"     # Turn on scratch file naming.
XLFSCRATCH_1="/tmp/molecules.dat" # Use this named file.
XLFSCRATCH_12="../data/scratch"   # Relative to current directory.
XLFSCRATCH_123="/home/user/data"  # Somewhere besides /tmp.
export XLFRTEOPTS XLFSCRATCH_1 XLFSCRATCH_12 XLFSCRATCH_123

注:

  1. XLFSCRATCH_number 変数名は大文字でなければならず、number に先行ゼロが 付いている必要があります。
  2. scratch_vars=yes は、他に設定した実行時オプションによっては、XLFRTEOPTS 変数の値の 一部にすぎない場合もあります。 XLFRTEOPTS 値の一部になり得る他のオプションについては、実行時オプションの設定を参照してください。
  3. scratch_vars 実行時オプションが no に設定されているか、未定義である場合、あるいは プログラムの実行時に適当な XLFSCRATCH_number 変数が設定されていない場合、プログラムは スクラッチ・ファイルに固有の名前を選択し、そのファイルを TMPDIR 変数で指定されたディレクトリーか、 TMPDIR 変数が指定されていない場合は /tmp ディレクトリーに入れます。
IBM Copyright 2003