移植ルーチン

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

移植ルーチンの表 (英語) も併せて参照してください。

情報取得ルーチン

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

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

プロセス制御ルーチン

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

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

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

この移植ライブラリーには FORK ルーチンは含まれていません。Linux* および Mac OS* X システムでは、FORK は親プロセスの複製イメージを作成します。子プロセスおよび親プロセスは、それぞれ固有のリソースのコピーを使用し、互いに独立したプロセスになります。Windows システムでは、子プロセス (スレッド) を作成することができますが、親プロセスと子プロセスの両方が同じアドレス空間とシステムリソースを共有します。

数値および変換ルーチン

これらの数値および変換ルーチンは、ベッセル関数における演算、データ型の変換、および乱数の生成に利用することができます。いくつかの関数は、標準の Fortran 95/90 に対応する関数があります。この場合、標準の Fortran ルーチンを使用してください。

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

AND、XOR、OR、LSHIFT、および RSHIFT などの他のビット操作関数は組み込み関数です。これらの関数にアクセスするために、IFPORT モジュールを使用する必要はありません。標準の Fortran 95/90 には多くのビット演算ルーチンが含まれています。これらのルーチンの一覧は、ビット演算および表現ルーチンの表 (英語) を参照してください。

入出力ルーチン

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

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

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

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

日付および時刻ルーチン

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

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

標準の Fortran 95/90 には、新しい日付と時刻の組み込みサブルーチンが含まれています。詳細は、「DATE_AND_TIME」(英語) を参照してください。

エラー処理ルーチン

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

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

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

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

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

デバイス、ディレクトリー、およびファイルに関する情報は、これらのルーチンで取得することができます。ファイル名には、長いファイル名または UNC ファイル名を含めることができます。パス名に含まれるスラッシュ (/) は、バックスラッシュ (\) として扱われます。すべてのパス名には、ドライブ指定を含めることができます。

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

シリアルポート・ルーチン (Windows のみ)

シリアルポート I/O (SPORT_xxx) ルーチンを使用することで、シリアルポートへの基本的な出入力を行うことができます。これらのルーチンは、IA-32 アーキテクチャーのシステムでのみ使用可能です。

その他のルーチン

移植ルーチンは、プログラムの呼び出しや制御、キーボードやスピーカー、ファイル管理、配列、浮動小数点での照会や制御、および IEEE* 機能などにも使用することができます。移植ルーチンの表 (英語) を参照してください。