環境変数の正しい設定方法

オペレーティング・システムで使用するように設定してエクスポートできる環境変数は多数あります。 以降の項では、XL Fortran コンパイラーとアプリケーション・プログラム、あるいはそのどちらか一方に特別に重要である 環境変数を扱います。

環境変数の原則

環境変数を、シェル・コマンド行から、またはシェル・スクリプト内で設定することができます。(環境変数の設定について詳しくは、使用しているシェルの man ページ・ヘルプを参照してください。) どのシェルを使用しているかわからない場合は、 echo $SHELL を発行して現行シェルの名前を 表示してください。

環境変数の内容を表示するには、echo $var_name コマンドを入力します。

注:
本書の 残りの部分では、シェル・コマンドの例の多くで、すべてのシェルの構文を 繰り返さずに Bash 表記 を使用しています。

各国語サポートのための環境変数

コンパイラーからの診断メッセージおよびリストは、 オペレーティング・システムのインストール時に指定したデフォルトの言語で表示されます。 メッセージおよびリストを別の言語で表示したい場合は、 コンパイラーを実行する前に以下の環境変数を設定してエクスポートすることができます。

LANG
これはロケール を指定します。 ロケールはカテゴリーに分類されます。 個々のカテゴリーにはロケール・データの特定な面が含まれています。 LANG を設定すれば、 すべてのカテゴリーに対して各国語を変更することができます。

NLSPATH
これは、メッセージ・カタログを見つけるのに必要なディレクトリー名のリストを示します。

たとえば、日本語ロケールを指定するには、LANG 環境変数を ja_JP に設定します。

関連のあるメッセージ・カタログがインストールされている場合は、ja_JP の代わりに有効な 各国語コードを使用してください。

オペレーティング・システムがインストールされると、これらの環境変数は初期化され、コンパイラーで使用したい 環境変数とは異なる場合があります。

各カテゴリーは、それぞれ関連付けられている環境変数を持っています。 特定のカテゴリーの各国語を変更したいが、他のカテゴリーの各国語は変更したくないという場合は、対応する 環境変数を設定してエクスポートすることができます。

たとえば、次のようになります。

LC_MESSAGES
送出されるメッセージに対して各国語を指定します。 これは、コンパイラーおよび XLF コンパイル済みプログラムからのメッセージに影響を与えます。 これらのメッセージは画面に表示することもできますし、 リスト、モジュール、またはその他のコンパイラー出力ファイルに格納することもできます。

LC_TIME
時刻形式カテゴリーに対して各国語を指定します。 主にコンパイラー・リストに影響を与えます。

LC_CTYPE
文字の分類、大文字/小文字の変換、およびその他の文字属性を定義します。 XL Fortran の場合は、主にマルチバイト文字の処理に影響を与えます。

LC_NUMERIC
数値の入出力に使用する形式を指定します。 この変数をシェルで設定しても、 コンパイラーにも XLF コンパイル済みプログラムにも影響を与えませんLC_NUMERIC カテゴリーは、 プログラムの最初の I/O ステートメントによって POSIX に設定されているので、 別の設定が必要なプログラムは、この箇所の後でリセットしてから、 すべての I/O ステートメントに対して POSIX への設定を復元します。

注:

  1. LC_ALL 環境変数を指定すると、 LANG およびその他の LC_ 環境変数の値がオーバーライドされます。

  2. XL Fortran コンパイラーまたはアプリケーション・プログラムがメッセージ・カタログにアクセスできなかったり、 特定のメッセージを検索できない場合は、英語でメッセージが表示されます。

  3. バックスラッシュ  は、¥ 記号と同じ 16 進コード X'5C' を持っており、 ロケールが日本語の場合はディスプレイに ¥ 記号として表示できます。

関連情報:
実行時メッセージ用の言語の選択.

各国語サポート環境変数およびロケールの概念についての詳細は、 Linux 固有の資料および man ページ・ヘルプを参照してください。

ライブラリー検索パスの設定

実行可能プログラムが共用ライブラリーにリンクされている場合、実行時ライブラリー検索パスを 設定する必要があります。 実行時ライブラリー検索パスは、2 つの方法で設定できます。 以下のいずれかです。

コンパイル/リンク -R (または -rpath) オプションで 検索パスを指定すると、指定の実行時ライブラリー検索パスが実行可能プログラムに書き込まれます。 -L オプションを使用した場合、ライブラリー検索パスはリンク時に検索されますが、実行可能プログラムへの、 実行時ライブラリー検索パスとしての書き込みは行われません。 たとえば、次のようになります。

# Compile and link
xlf95 -L/usr/lib/mydir1 -R/usr/lib/mydir1 -L/usr/lib/mydir2 -R/usr/lib/mydir2
  -lmylib1 -lmylib2 test.f
 
# -L directories are searched at link time.
# -R directories are searched at run time.
 

また、LD_LIBRARY_PATH および LD_RUN_PATH 環境変数を使用して ライブラリー検索パスを指定することもできます。 実行時にライブラリーの検索が行われるディレクトリーを指定するには、LD_RUN_PATH を使用します。 リンク時と実行時の両方にライブラリーの検索が行われるディレクトリーを指定するには、LD_LIBRARY_PATH を 使用します。

リンカー・オプションおよび環境変数の詳細については、ld コマンドの man ページを参照してください。

PDFDIR: PDF プロファイル情報用ディレクトリーの指定

-qpdf コンパイラー・オプションを使用して Fortran 90 をコンパイルする場合、プロファイル情報を格納する ディレクトリーの名前を PDFDIR 環境変数に設定することによって、そのディレクトリーを指定できます。 コンパイラーはプロファイル情報を保持するファイルを作成し、-qpdf1 オプションを指定してコンパイルした アプリケーションを実行したときに、それらのファイルは更新されます。

プロファイル情報が誤った場所に格納されていたり、複数のアプリケーションによって更新されたりすると問題が 起きる可能性があるため、次のガイドラインに従うことをお勧めします。

TMPDIR: 一時ファイルのディレクトリーの指定

XL Fortran コンパイラーは、コンパイル時に使用するために多数の一時ファイルを作成し、 XL Fortran アプリケーション・プログラムは、 STATUS='SCRATCH' でオープンされるファイルの一時ファイルを実行時に作成します。 デフォルトでは、これらのファイルは /tmp ディレクトリーに入れられます。

これらのファイルが入るディレクトリーを変更したい場合は、 すべての一時ファイルを保持できるほど /tmp が大きくないので、 コンパイラーまたはアプリケーション・プログラムを実行する前に、 TMPDIR 環境変数を設定してエクスポートしてください。

以下に示す XLFSCRATCH_unit の方法を使用してスクラッチ・ファイルを明示的に指定した場合、 TMPDIR 環境変数はそのファイルに影響を与えません。

XLFSCRATCH_unit: スクラッチ・ファイルの名前の指定

スクラッチ・ファイルに特定の名前を指定するには、 実行時オプションの scratch_vars=yes を設定し、 それから 1 つ以上の環境変数に、 それらのユニットがスクラッチ・ファイルとしてオープンされたときに使用されるファイル名を XLFSCRATCH_unit の形式で設定します。 例については、スクラッチ・ファイルの命名を参照してください。

XLFUNIT_unit: 暗黙に接続されるファイルの名前の指定

暗黙に接続されるファイル、 または FILE= 指定子なしにオープンされるファイルの名前を指定するには、 まず実行時オプションの unit_vars=yes を指定し、 次に XLFUNIT_unit という形式の名前が付いた 1 つ以上の環境変数をファイル名に設定します。 例については、明示的な名前に接続されていないファイルの命名を参照してください。 IBM Copyright 2003