XL Fortran プログラムの実行

実行可能プログラムのデフォルトのファイル名は a.out です。 -o コンパイラー・オプションを指定して別の名前を選択することができます。 誤ったコマンドをうっかり実行することがないように、 システム・コマンドまたはシェル・コマンド (たとえば、 test または cp) と同じ名前をプログラムに付けないようにする必要があります。 名前の矛盾が発生した場合は、 ./test などのパス名を指定することにより、 プログラムを実行することができます。

実行可能ファイルのパス名とファイル名、 実行時の引数をコマンド行に入力すれば、プログラムを実行できます。

実行の取り消し

プログラムの実行を中断するには、プログラムがフォアグラウンドにある間に Ctrl+Z キーを押してください。 実行を再開するには、fg コマンドを使用してください。

プログラムの実行を中断するには、 プログラムがフォアグラウンドにある間に Ctrl+C キーを押してください。

別のシステム上でのコンパイルと実行

XL Fortran 実行可能ファイルを別のシステムに移動して実行したい場合は、 静的にプログラム (および任意で実行時メッセージ・カタログ) をリンクおよび コピーすることができます。 また、プログラム (および、必要な場合は XL Fortran ライブラリーと任意で実行時メッセージ・カタログ) を動的に リンクしてコピーすることもできます。 非 SMP プログラムの場合、libxlf90.solibxlfmath.so、および libxlomp_ser.so のみが通常必要な XL Fortran ライブラリーです。 SMP プログラムの場合、通常、少なくとも libxlf90_r.solibxlfmath.so および libxlsmp.so ライブラリーが必要出会う。SMP プログラムの場合、通常は少なくとも libxlf90_r.so, libxlfmath.so および libxlsmp.so ライブラリーが必要です。libxlfpmt*.solibxlfpad.so が必要となるのは、 プログラムが -qautodbl オプションを使用してコンパイルされている場合のみです。

動的にリンクしたプログラムが正しく動作するためには、実行システム上の XL Fortran ライブラリーおよび オペレーティング・システム・レベルがコンパイル・システム上のレベルと同じか、またはそれより新しいレベルで なければなりません。

静的にリンクしたプログラムが正しく動作するためには、実行システム上の オペレーティング・システム・レベルがコンパイル・システム上のレベルと同じでなければならない場合があります。

関連情報:
動的および静的リンクを参照してください。

POSIX pthreads がサポートするランタイム・ライブラリー

POSIX のスレッド・サポートを使用して接続されたランタイム・ライブラリーが 2 種類あります。 libxlf90_r.so ライブラリーは、Fortran ランタイム・ライブラリーのスレッド・セーフであるバージョンです。 libxlsmp.so ライブラリーは、SMP ランタイム・ライブラリーです。

呼び出しコマンド、またある場合は、コンパイラー・オプションによって、スレッドをサポートするのに適切なライブラリー のセットがバインドされています。 たとえば、次のようになります。

コマンド 使用されるライブラリー インクルード・ディレクトリー
xlf90_r
xlf95_r
xlf_r
/opt/ibmcmp/lib/libxlf90_r.so
/opt/ibmcmp/lib64/libxlf90_r.so
/opt/ibmcmp/lib/libxlsmp.so
/opt/ibmcmp/lib64/libxlsmp.so
/opt/ibmcmp/xlf/10.1/include

実行時メッセージ用の言語の選択

XL Fortran プログラムが作成する実行時メッセージ用の言語を選択するには、 プログラムの実行前に環境変数 LANGNLSPATH を設定してください。

環境変数の設定の他にも、プログラムは C ライブラリー・ルーチン setlocale を呼び出して、 実行時にプログラムのロケールを設定する必要があります。 たとえば、次のプログラムは、実行時メッセージのカテゴリーを環境変数 LC_ALLLC_MESSAGESLANG に応じて設定することを指定します。

  PROGRAM MYPROG
  PARAMETER(LC_MESSAGES = 5)
  EXTERNAL SETLOCALE
  CHARACTER NULL_STRING /Z'00'/
  CALL SETLOCALE (%VAL(LC_MESSAGES), NULL_STRING)
  END
関連情報:
各国語サポートのための環境変数を参照してください。

実行時オプションの設定

XL Fortran プログラム内の内部スイッチは、 コンパイラー・オプションがコンパイル時の動作を制御する方法と似た方法で、 実行時の動作を制御します。 実行時オプションは、 プログラム内の環境変数またはプロシージャー呼び出しによって設定することができます。 環境変数 XLFRTEOPTS および XLSMPOPTS を使用して、XL Fortran の実行時オプションの設定を指定することができます。

XLFRTEOPTS 環境変数

XLFRTEOPTS 環境変数を使用すると、 ユーザーは I/O、EOF エラー処理、 および乱数発生ルーチンの指定に影響を与えるオプションを指定することができます。 XLFRTEOPTS は、次の bash コマンド形式を使用して宣言します。

構文図を読む構文図をスキップする                         .-:------------------------------------------.
                       V                                            |
>>-XLFRTEOPTS=--+---+----runtime_option_name--=----option_setting---+--+---+-><
                '-"-'                                                  '-"-'
 

オプション名と設定は、英大文字または小文字のどちらでも指定することができます。 コロンおよび等号の前後にブランクを追加して、読みやすくすることができます。 しかし、XLFRTEOPTS オプション・ストリングに組み込みブランクが含まれている場合は、 オプション・ストリング全体を二重引用符 (") で囲む必要があります。

プログラムが次のいずれかの状況を初めて検出したときに、環境変数がチェックされます。

プログラムの実行中に XLFRTEOPTS 環境変数を変更しても、プログラムには影響はありません。

SETRTEOPTS プロシージャー (「XL Fortran 言語解説書」で定義されています) は、 環境変数 XLFRTEOPTS と同じ名前値のペアを含んでいる単一ストリング引数を受け入れます。これは環境変数をオーバーライドし、プログラムの実行中に設定を変更したいときに使用することができます。 SETRTEOPTS への別の呼び出しによって変更されない限り、プログラムの残りの部分には、新たな設定が引き続き有効です。 プロシージャー呼び出しで指定された設定だけが変更されます。

次の実行時オプションは、環境変数 XLFRTEOPTS またはプロシージャー SETRTEOPTS で指定することができます。

buffering={enable | disable_preconn | disable_all}
XL Fortran のランタイム・ライブラリーが、入出力操作で使用するバッファリングを実行するかどうかを判別します。

ライブラリーは、チャンクにあるファイル・システムからのデータの読み取りや、それに対するデータの書き込みを、少しずつ 行うのではなく、READ 文や WRITE 文が来るたびに一括して行います。 バッファリングを実行する主な利点は、パフォーマンスを向上させることができるということです。

Fortran のルーチンが他の言語のルーチンと一緒に作業するアプリケーションや、Fortran のプロセスが同じ データ・ファイル上の他のプロセスと一緒に作業するアプリケーションがある場合、Fortran ルーチンによって 書かれたデータは、バッファリングが実行されるため、他のパーティーによってすぐには認識されない場合が あります (その逆も言えます)。 また、Fortran の READ 文は、入出力バッファーに必要以上のデータを読み込む場合があり、 結果として次のデータ項目を読み取るはずの、他の言語で書かれたルーチンや他のプロセスによって実行される 入力操作が失敗する可能性があります。 このような場合、buffering 実行時オプションを使用して、XL Fortran のランタイム・ライブラリーの バッファリングを使用不能にすることができます。 そうすれば、READ 文はファイルから必要とするデータを正確に読み取ることができ、 WRITE 文によるデータの書き込みも、文の完了時にファイル・システムへ フラッシュされます。

注: I/O バッファリングは、順次アクセス装置 (パイプ、端末、ソケット など) 上のファイルでは常に使用可能です。 buffering オプションを設定しても、このようなタイプのファイルに影響を及ぼすことはありません。

論理装置で I/O バッファリングを使用不能にすると、Fortran のサービス・ルーチン flush_ を呼び出して、 その論理装置用の I/O バッファーの内容をフラッシュする必要はありません。

buffering のサブオプションは、以下のとおりです。

enable
Fortran ランタイム・ライブラリーは、接続されている各論理装置ごとに入出力バッファーを保持します。 ランタイム・ライブラリーが保持する現行の読み取り/書き込みファイル・ポインターは、ファイル・システムにある 対応するファイルの読み取り/書き込みポインターとの同期を取らない場合があります。
disable_preconn
Fortran ランタイム・ライブラリーは、事前に接続されている各論理装置 (0、5、および 6) ごとに入出力バッファーを 保持しません。 ただし、接続されている他の論理装置の入出力バッファーはすべて保持します。 ランタイム・ライブラリーが事前接続された装置用に保持する現行の読み取り/書き込みファイル・ポインターは、 ファイル・システムにある対応するファイルの読み取り/書き込みポインターと同じです。
disable_all
Fortran ランタイム・ライブラリーは、どの論理装置にも入出力バッファーを保持しません。 非同期入出力を実行する Fortran プログラムを使用していない場合は、 buffering=disable_all オプションを指定しないでください。

以下の例では、Fortran ルーチンと C ルーチンが、リダイレクトする標準入力からデータ・ファイルを読み取ります。 最初に、メインの Fortran プログラムが整数を 1 つ読み取ります。 それから、C ルーチンが整数を 1 つ読み取ります。 最後に、メインの Fortran プログラムが別の整数を読み取ります。

Fortran のメインプログラム:

integer(4) p1,p2,p3
print *,'Reading p1 in Fortran...'
read(5,*) p1
call c_func(p2)
print *,'Reading p3 in Fortran...'
read(5,*) p3
print *,'p1 p2 p3 Read: ',p1,p2,p3
end

C のサブルーチン (c_func.c):

#include <stdio.h>
void
c_func(int *p2)
{
    int n1 = -1;

    printf("Reading p2 in C...¥n");
    setbuf(stdin, NULL);    /* Specifies no buffering for stdin */
    fscanf(stdin,"%d",&n1);
    *p2=n1;
    fflush(stdout);
}

入力データ・ファイル (infile):

11111
22222
33333
44444

メインプログラムは、リダイレクトする標準入力として infile を使用して実行します。 次のようにします。

$ main < infile

buffering=disable_preconn をオンにすると、結果は次のようになります。

Reading p1 in Fortran...
Reading p2 in C...
Reading p3 in Fortran...
p1 p2 p3 Read:  11111 22222 33333

buffering=enable をオンにすると、結果は予想不能です。

cnverr={yes | no}
この実行時オプションが no に設定されていると、 プログラムは変換エラーを検出する I/O ステートメントの IOSTAT= および ERR= 指定子に従いません。 その代わり、デフォルトの回復処置を実行します (err_recovery の設定とは無関係です)。 さらに、警告メッセージを出すこともあります (xrf_messages が設定されているかどうかによって決まります)。
関連情報:
変換エラーについて詳しくは、「XL Fortran 言語解説書」の 『データ転送ステートメント』を 参照してください。 IOSTAT 値に関する詳細は、 「XL Fortran 言語解説書」の『条件および IOSTAT 値』を参照してください。
cpu_time_type={usertime | systime | alltime | total_usertime | total_systime | total_alltime}
CPU_TIME(TIME) の呼び出しによって戻される時間の尺度を決定します。

cpu_time_type のサブオプションは、以下のとおりです。

usertime
プロセスのユーザー時間を戻します。
systime
プロセスのシステム時間を戻します。
alltime
プロセスのユーザーおよびシステム時間の合計を戻します。
total_usertime
プロセスのユーザー時間の合計を戻します。 ユーザー時間の合計とは、プロセスのユーザー時間と、その子プロセス (ある場合) の ユーザー時間の合計です。
total_systime
プロセスのシステム時間の合計を戻します。 システム時間の合計とは、現行プロセスのシステム時間と、その子プロセス (ある場合) の システム時間の合計です。
total_alltime
プロセスのユーザー時間とシステム時間の合計を戻します。 ユーザー時間とシステム時間の合計とは、 現行プロセスのユーザーおよびシステム時間と、 その子プロセス (ある場合) のユーザーおよびシステム時間の合計です。
default_recl={64 | 32}
RECL= 指定子なしでオープンされた順次ファイル用のデフォルトのレコード・サイズを決定することができます。 サブオプションは以下のとおりです。
64
デフォルトのレコード・サイズとして 64 ビット値を使用します。
32
デフォルトのレコード・サイズとして 32 ビット値を使用します。

default_recl 実行時オプションは 64 ビット・モードでのみ適用されます。 32 ビット・モードでは、default_recl は無視され、レコード・サイズは 32 ビットになります。

32 ビット・プログラムを 64 ビット・モードに移植するときは、default_recl を使用してください。 64 ビット・レコード長は指定された整変数に適合しません。 以下を見てください。

INTEGER(4) I
OPEN (11)
INQUIRE (11, RECL=i)

default_recl=64 のとき、64 ビット・モードでは上記のコード・サンプルで実行時エラーが 発生します。 これは、デフォルト・レコード長 2**63-1 が 4 バイト整数 I に適合しないためです。 default_recl=32 を指定すると、I に適合するデフォルト・レコード・サイズ 2**31-1 が保証されます。

RECL= 指定子について詳しくは、「XL Fortran 言語解説書」の OPEN 文の説明を参照してください。

erroreof={yes | no}
ファイルの終わり条件が検出されたときに END= 指定子が存在しない場合は、 ERR= 指定子によって指定されたラベルが分岐するかどうかを判別します。
err_recovery={yes | no}
この実行時オプションが no に設定されている場合、指定子 IOSTAT= または ERR= を持たない I/O ステートメントの実行中に回復可能エラーが存在すると、プログラムが停止します。 デフォルト時には、これらの文のいずれかが回復可能エラーを検出すると、プログラムは回復処置を 行って作業を続行します。 cnverryes に設定し、err_recoveryno に設定すると、変換エラーが 発生して、プログラムが停止する場合があります。
iostat_end={extended | 2003std}
ファイルの終わりおよびレコードの終わり条件が発生したときは、 IOSTAT 値を、 XL Fortran 定義または Fortran 2003 標準に基づいて設定します。 サブオプションは以下のとおりです。
extended
IOSTAT 変数を、XL Fortran の値と条件の定義に基づいて設定します。
2003std
IOSTAT 変数を、Fortran 2003 の値と条件の定義に基づいて設定します。

たとえば、iostat_end=2003std 実行時オプションを設定すると、ファイルの終わり条件に対して 戻される拡張子と異なる IOSTAT 値となります。

    export XLFRTEOPTS=iostat_end=2003std
    character(10) ifl
    integer(4) aa(3), ios
    ifl = "12344321  "
    read(ifl, '(3i4)', iostat=ios) aa ! end-of-file condition occurs and
                                      ! ios is set to -1 instead of -2.

IOSTAT 値の設定および使用の詳細については、 「XL Fortran 言語解説書」の READ および WRITE の説明、 ならびに『条件と IOSTAT 値』の節を参照してください。

intrinthds={num_threads}
MATMUL および RANDOM_NUMBER 組み込みプロシージャーの 並列実行のスレッド数を指定します。 MATMUL 組み込みの使用時の num_threads のデフォルト値は、オンラインのプロセッサー数と同じです。 RANDOM_NUMBER 組み込みの使用時の num_threads のデフォルト値は、オンラインのプロセッサー数*2 に等しくなります。

MATMUL および RANDOM_NUMBER 組み込みプロシージャーで使用可能なスレッド数を変更すると、 パフォーマンスに影響を及ぼす可能性があります。

langlvl={extended| 90std | 95std | 2003std}
Fortran の標準および標準の拡張機能をサポートするレベルを判別します。 サブオプションの値は、以下のようになります。
90std
Fortran 90 標準の I/O ステートメントおよび形式のすべての拡張機能にコンパイラーがエラーのフラグを付けるよう指定します。
95std
Fortran 95 標準の I/O ステートメントおよび形式のすべての拡張機能 にコンパイラーがエラーのフラグを付けるよう指定します。
2003std
XL Fortran がサポートする Fortran 2003 形式とともに、Fortran 95 標準が 指定するすべての標準の I/O ステートメントおよび形式をコンパイラーが 受け入れるように指定します。 それ以外は、エラーとしてフラグが付けられます。

たとえば、langlvl=2003std 実行時オプションを設定すると、ランタイム・エラー・メッセージが出されます。

integer(4) aa(100)
call setrteopts("langlvl=2003std")
    ...          ! Write to a unit without explicitly
    ...          ! connecting the unit to a file.
write(10, *) aa  ! The implicit connection to a file does not
    ...          ! comform with Fortran 2003 behavior.
extended
Fortran 95 言語標準、XL Fortran がサポートする Fortran 2003 フィーチャー、および拡張機能を コンパイラーが受け入れるようにし、言語レベルのチェックが実際上オフになるように指定します。

Fortran 95 標準の一部であり、XL Fortran で使用できる項目 (名前リストのコメントなど) の サポートを取得するには、以下のサブオプションのいずれかを指定する必要があります。

以下の例には、Fortran 95 拡張機能 (file 指定子が OPEN 文で脱落している) が含まれています。

program test1

call setrteopts("langlvl=95std")
open(unit=1,access="sequential",form="formatted")

10 format(I3)

write(1,fmt=10) 123

end

langlvl=95std を指定すると、ランタイム・エラー・メッセージが作成されます。

以下の例には、Fortran 90 には含まれていない Fortran 95 の機能 (名前リストのコメント) が含まれています。

program test2

INTEGER I
LOGICAL G
NAMELIST /TODAY/G, I

call setrteopts("langlvl=95std:namelist=new")

open(unit=2,file="today.new",form="formatted", &
    & access="sequential", status="old")

read(2,nml=today)
close(2)

end

today.new:

&TODAY  ! This is a comment
I = 123, G=.true. /

langlvl=95std を指定すると、ランタイム・エラー・メッセージは作成されません。 しかし、langlvl=90std を指定すると、ランタイム・エラー・メッセージが作成されます。

err_recovery 設定は、発生したエラーが回復可能なエラーであるか、それとも重大なエラーであるかを 判別します。

multconn={yes | no}
複数の論理装置で同時に同じファイルにアクセスできるようにします。 このオプションを使用すると、ファイルのコピーを作成せずにファイル内の同じ複数の位置を同時に読み取ることが できます。

同じプログラム内の多重接続が許可されるのは、ディスク・ドライブなどのランダム・アクセス・デバイス上にある ファイルの場合のみです。 次のような場合は、同じプログラム内の多重接続は許可されていません。

ファイルに損傷を与えないようにするために、以下の点に注意してください。

multconnio={tty | nulldev | combined | no }
デバイスで複数の論理装置に接続できるようにします。 それにより、同じ装置に接続されている複数の論理装置に書き込んだり、その論理装置から読み取ったりすることができます。 サブオプションは以下のとおりです。
combined
ヌル装置と TTY 装置の組み合わせを複数の論理装置に接続できるようにします。
nulldev
ヌル装置を複数の論理装置に接続できるようにします。
tty
TTY デバイスで複数の論理装置に接続できるようにします。
注:
このオプションを使用すると、予測不能な結果が生じる場合があります。

これでプログラムにおいて、UNIT パラメーターとは値が異なっていても、FILE パラメーターとは 同じ値を含む OPEN 文を複数指定することができます。 たとえば、TTY デバイス /dev/tty にリンクされている mytty という シンボリック・リンクがある場合は、multconnio=tty オプションを指定する際に、以下のプログラムを 実行することができます。

PROGRAM iotest
OPEN(UNIT=3, FILE='mytty', ACTION="WRITE")
OPEN(UNIT=7, FILE='mytty', ACTION="WRITE")
END PROGRAM iotest

Fortran は、装置 0、5、および 6 を TTY デバイスに事前に接続します。 通常は、OPEN 文を使用して、装置 0、5、および 6 に接続された TTY デバイスに、追加の 装置を接続することはできませんが、multconnio=tty オプションを指定すれば、それが可能です。 たとえば、装置 0、5、および 6 が TTY デバイス /dev/tty に事前に接続されている 場合、multconnio=tty オプションを指定すれば、以下のプログラムを実行することができます。

PROGRAM iotest
   ! /dev/pts/2 is your current tty, as reported by the 'tty' command.
   ! (This changes every time you login.)
   CALL SETRTEOPTS ('multconnio=tty')
   OPEN (UNIT=3, FILE='/dev/pts/2')
   WRITE (3, *) 'hello'  ! Display 'hello' on your screen
END PROGRAM
namelist={new | old}
プログラムが入出力に XL Fortran の新しい NAMELIST 形式を使用するか、または 古い NAMELIST 形式を使用するかを判別します。 Fortran 90 および Fortran 95 標準では、この新しい形式が要求されています。
注:
NAMELIST 出力を含む既存のデータ・ファイルを読み取るには、古い設定が必要になる 場合があります。ただし、新しいデータ・ファイルの書き込みには、標準に準拠している新しい形式を使用してください。

namelist=old では、langlvl=95stdlanglvl=90std、または langlvl=2003std 設定はいずれも、非標準 NAMELIST 形式をエラーと見なしません。

関連情報:
NAMELIST I/O に関する詳細は、 「XL Fortran 言語解説書」の『名前リストの形式設定』を参照してください。
nlwidth=record_width
デフォルト時には、NAMELIST 書き込み文は、 書き込まれた NAMELIST 項目をすべて含むことができる長さの出力レコードを 1 つ作成します。 出力レコード NAMELIST を指定の幅に制限するには、 実行時オプション nlwidth を使用します。
注:
このオプションは、 順次ファイル用の RECL= 指定子を使用することによって、無効なオプションになります。 プログラムは指定されたレコード長の範囲内に入るように NAMELIST 出力を合わせようとするからです。 幅 nlwidth が宣言されているファイルのレコード長を超過しない限りは、 依然として nlwidthRECL= と組み合わせて使用することができます。
random={generator1 | generator2}
RANDOM_SEEDGENERATOR 引数を指定して呼び出されていない場合は、 RANDOM_NUMBER が使用する生成プログラムを指定します。 generator1 (デフォルト) の値は GENERATOR=1 に一致し、 generator2 の値は GENERATOR=2 に一致します。 RANDOM_SEEDGENERATOR 引数を指定して呼び出されている場合は、 その時以降のプログラム内のランダム・オプションをオーバーライドします。 ランダム・オプションを変更するために、 GENERATOR オプションを指定して RANDOM_SEED を呼び出した後で SETRTEOPTS を呼び出しても、 効果はありません。
scratch_vars={yes | no}
スクラッチ・ファイルに特定の名前を指定するには、 実行時オプション scratch_varsyes に設定し、 環境変数 XLFSCRATCH_unit に、 指定した装置番号へ関連付けたいファイルの名前を指定します。 例は『スクラッチ・ファイルの命名』を参照してください。
unit_vars={yes | no}
暗黙に接続されるファイル、または FILE= 指定子なしにオープンされるファイルの名前を指定するには、 まず実行時オプションの unit_vars=yes を指定し、次に XLFUNIT_unit という形式の 名前が付いた 1 つ以上の環境変数をファイル名に設定します。 例は『明示的名前なしで接続されるファイルの命名』を参照してください。
uwidth={32 | 64}
不定様式順次ファイルのレコード長フィールドの幅を指定する場合、 値をビット単位で指定します。 不定様式順次ファイルのレコード長が (2**31 - 1) バイトから 8 バイトを引いた値 (データを囲むレコード終了文字を表す) より大きい場合は、 実行時オプションの uwidth=64 を設定して、 レコード長フィールドを 64 ビットに拡張する必要があります。 このようにすると、 レコード長は最高で (2**63 - 1) から 16 バイトを引いた値 (データを囲むレコード終了文字を表す) にすることができます。 実行時オプションの uwidth は、64 ビット・モードのアプリケーションでしか使用できません。
xrf_messages={yes | no}
入出力操作、RANDOM_SEED 呼び出し、および ALLOCATE または DEALLOCATE 文の実行中に、 プログラムがエラー状態に関する実行時メッセージを表示しないようにするには、 実行時オプション xrf_messagesno に 設定してください。no に設定しておかないと、 変換エラーおよびその他の問題に関する実行時メッセージが、 標準エラー・ストリームに送られます。

次の例は、実行時オプション cnverryes に設定し、 xrf_messages オプションを no に設定します。

# Basic format
  XLFRTEOPTS=cnverr=yes:xrf_messages=no
  export XLFRTEOPTS

# With imbedded blanks
  XLFRTEOPTS="xrf_messages = NO : cnverr = YES"
  export XLFRTEOPTS

SETRTEOPTS への呼び出しとして、上記の例は次のように記述できます。

  CALL setrteopts('xrf_messages=NO:cnverr=yes')
! Name is in lowercase in case -U (mixed) option is used.

OMP および SMP の実行時オプションの設定

XLSMPOPTS 環境変数を使用すると、ユーザーは SMP の実行に影響を与えるオプションを指定することが できます。 OpenMP 環境変数、OMP_DYNAMICOMP_NESTEDOMP_NUM_THREADS、および OMP_SCHEDULEは、並列コードの実行を制御できます。これらの使用について詳しくは、 XLSMPOPTS および OpenMP 環境変数 を参照してください。

BLAS/ESSL 環境変数

デフォルトで、libxlopt ライブラリーは読者が XL Fortran でコンパイルするすべてのアプリケーションに リンクされます。ただし、サード・パーティーの 基礎線形代数サブプログラム (BLAS) ライブラリーを使用していたり、ESSL ルーチンを組み込む バイナリーを出荷したい場合、XL_BLAS_LIB 環境変数を使用してこれらを指定する必要があります。たとえば、 ご使用の BLAS ライブラリーが libblas と呼ばれる場合、環境変数を次のように設定します。

export XL_BLAS_LIB=/usr/lib/libblas.a

コンパイラーが BLAS ルーチンへの呼び出しを生成するとき、libblas ライブラリーで定義 されているサブルーチンが libxlopt で定義されているものの代わりに実行時に使用されます。

XL_NOCLONEARCH

XL_NOCLONEARCH を使用してプログラムに汎用コードのみを実行するように指示してください。 ここで、汎用コードとはアーキテクチャー用に使用されないコードです。XL_NOCLONEARCH 環境変数は、 デフォルトで設定されません。ユーザーはアプリケーションでデバッグの目的用に設定できます。(-qipa=clonearch オプション も参照してください。)