移植ルーチン

ここでは、いくつかの移植ルーチンおよびその使用方法について説明します。

ルーチンの一覧は、『インテル® Fortran ライブラリ・リファレンス』マニュアルの概要の章にある「移植ルーチン」の表を参照してください

情報取得ルーチン

これらのルーチンは、システムのコマンド、コマンドラインからの引数、環境変数、およびプロセスまたはユーザ情報を返します。

グループ、ユーザ、およびプロセス ID は INTEGER(4) の変数です。ログイン名およびホスト名は文字変数です。GETGID および GETUID 関数は、移植性のために提供されていますが、常に 1 を返します。

プロセス制御ルーチン

これらのプロセス制御ルーチンは、プロセスまたはサブプロセスの操作を制御します。SLEEP または ALARM を使用することでサブプロセスの操作が完了するまで待機し、その進行状況を監視して、KILL を経由して信号を送信し、ABORT でプロセスの実行を停止することができます。

KILL は、必ずしもプログラムの実行を停止するわけではありません。その代わりに、信号を確認し、渡されたコードに応じて適切な操作を行うハンドラルーチンを、信号を受信するルーチンに含めることができます。

SYSTEM を使用した場合、コマンドは別のシェルで実行されることに注意してくだい。SYSTEM 関数で設定された、現在の作業ディレクトリまたは環境変数などのデフォルト設定は、呼び出し側のプログラムが実行されている環境には影響しません。

この移植ライブラリには FORK ルーチンは含まれていません。Linux* システムでは、FORK は親プロセスの複製イメージを作成します。子プロセスおよび親プロセスは、それぞれ固有のリソースのコピーを使用し、互いに独立したプロセスになります。

数値および変換ルーチン

これらの数値および変換ルーチンは、ベッセル関数における演算、データ型の変換、および乱数の生成に利用することができます。

これらの関数のいくつかは、標準の Fortran 95/90 に相当します。データ・オブジェクトの変換は、LONG または SHORT の代わりに INT 組込み関数を使用して行うことができます。RANDOM_NUMBER および RANDOM_SEED 組込みサブルーチンは、数値および変換ルーチンの表に示す乱数関数と同じ関数を実行します。

AND、XOR、OR、LSHIFT、および RSHIFT などの他のビット操作関数は組込み関数です。これらの関数にアクセスするために、IFPORT モジュールを使用する必要はありません。標準の Fortran 95/90 には多くのビット演算ルーチンが含まれています。『Language Reference』(英語) マニュアルの第 9 章「Category Bit」にある表 9-2 に、これらのルーチンのリストが示されています。

入出力ルーチン

移植ライブラリには、ファイルのプロパティを変更し、文字およびバッファの読み書きを行い、ファイルのオフセット位置を変更するルーチンが含まれています。これらの入出力ルーチンは、次の点を考慮した上で READ または WRITE などの標準の Fortran 入出力文で、同じファイルに対して使用することができます。

これらのルーチンを使用して発生した I/O エラーは、インテル Fortran のランタイム・エラーの原因となります。

移植ファイル I/O ルーチンのいくつかは、標準 Fortran 95/90 に相当しています。例えば、ACCESS 関数を使用して、名前で指定されたファイルに対し、モードに従った参照が可能かどうかを確認できます。ACCESS 関数は、ファイルが存在するかどうかを確認するとともに、ファイルに対する読み取り許可、書き込み許可、または実行許可があるかどうかをテストします。この関数は、プログラムの OPEN 文で指定されたファイル属性ではなく、ディスク上に存在するファイル属性を使用します。

ACCESS の代わりに、INQUIRE 文で ACTION パラメータを使用することで、同じ情報を取得することができます。ACCESS 関数は、FAT ファイルの読み取り許可には 0 を返します。これは、すべてのファイルに対して読み込み許可があることを示します。

日付および時刻ルーチン

さまざまな日付および時刻ルーチンを使用して、システム時刻を決定したり、時刻を現地時刻、グリニッジ標準時、日付と時刻要素の配列、または ASCII 文字列に変換することができます。

TIME および DATE は、関数またはサブルーチンのどちらとしても使用できます。名前が重複しているため、プログラムに USE IFPORT 文が含まれていない場合、個別にコンパイルされた各プログラムは、これらのバージョンから 1 つしか使用できません。例えば、プログラムが TIME サブルーチンを 1 度呼び出している場合、TIME を関数として使用することはできません。

標準 Fortran 95/90 には、新しい日付と時刻の組込みサブルーチンが含まれています。

エラー処理ルーチン

エラー処理ルーチンは、エラーを検出して、エラーのレポートを出力します。

IERRNO エラーコードは、UNIX システムの errno と類似しています。IFPORT モジュールは、通常 UNIX システムの errno.h に含まれている多くの UNIX の errno 名のパラメータ定義を提供します。

IERRNO はエラーが発生した場合にのみ更新されます。例えば、GETC 関数の呼び出しによってエラーが発生したが、その後で 2 回呼び出した PUTC が成功した場合、IERRNO を呼び出すと GETC 呼び出しのエラーが返されます。IERRNO は、移植ライブラリ・ルーチンを呼び出した直後に確認してください。その他の標準 Fortran 90 ルーチンによって、値が未定義の値に変更される可能性があります。

アプリケーションがマルチスレッドを使用する場合、IERRNO は各スレッドごとに設定されることに注意してください。

システム、ドライブ、またはディレクトリ制御および照会ルーチン

デバイス、ディレクトリ、およびファイルに関する情報は、これらのルーチンで取得することができます。

標準 Fortran 90 は、ファイル名またはユニット番号でファイルの詳細情報を返す INQUIRE 文を提供します。INQUIRE は、FSTAT、LSTAT、または STAT と同じように使用してください。LSTAT および STAT は同じ情報を返します。STAT 関数の使用を推奨します。

その他のルーチン

移植ルーチンは、プログラムの呼び出しや制御、キーボードやスピーカ、ファイル管理、配列、浮動小数点での照会や制御、および IEEE* 機能などにも使用することができます。詳細は、『インテル® Fortran ライブラリ・リファレンス』マニュアルの概要の章にある「移植ルーチン」の表を参照してください