インテル® Fortran コンパイラー 16.0 ユーザー・リファレンス・ガイド
Fortran ランタイム・ライブラリーを使用するマルチスレッド・アプリケーションをビルドするには、コマンドラインから threads コンパイラー・オプションを指定します。Windows* システムでは、後述のように、Visual Studio* 統合開発環境 (IDE) を使用することもできます。
また、正しいライブラリー・ファイルとリンクする必要があります。OpenMP* や Co-Array など、一部のライブラリーは常に動的にリンクされます。
静的にリンクされたマルチスレッド・プログラムを作成するには、libifcoremt.a スタティック・ライブラリーとリンクします。
共有ライブラリーを使用するには、アプリケーションを libifcoremd.so (Linux*) または libifcoremd.dylib (OS X*) とリンクします。
コマンドラインからマルチスレッド・プログラムをコンパイルおよびリンクする方法:
IA32ROOT 環境変数に、ライブラリー・ファイルを含むディレクトリーが指定されていることを確認します。
-threads オプションを使用して、プログラムのコンパイルとリンクを行います。次に例を示します。
ifort -threads mythread.f90
確実にスレッドセーフ/再入可能なランタイム・ライブラリーがリンクされ、正しく初期化されるように、リンク段階およびメインルーチンのコンパイルで threads オプションを使用すべきです。
静的にリンクされたマルチスレッド・プログラムを作成するには、再入可能な LIBIFCOREMT.LIB サポート・ライブラリーとリンクします。
共有ライブラリーを使用するには、アプリケーションを LIBIFCOREMD.LIB インポート・ライブラリーとリンクすることで参照される再入可能な LIBIFCOREMD.DLL 共有ライブラリーを使用します。
LIBIFCOREMT.LIB を使用してビルドされたプログラムが呼び出すダイナミック・リンク・ライブラリーは、Fortran ランタイム・ライブラリーのコードやデータを共有しません。DLL を呼び出す場合、LIBIFCOREMD.LIB をリンクする必要があります。
追加情報:
/threads オプションは、IDE でマルチスレッド・アプリケーションを指定すると、自動的に設定されます。
マルチスレッド・コードと DLL の両方を使用する場合、/libs=dll コンパイラー・オプションと /threads コンパイラー・オプションを指定します。
/libs=dll オプションおよび /threads オプションは Fortran コンソール・プロジェクトでのみ使用できます。QuickWin アプリケーションでは使用できません。
Visual Studio* を使用してマルチスレッド・プログラムをコンパイルおよびリンクする方法:
[File (ファイル)] > [New (新規作成)] > [Project (プロジェクト)] をクリックして新規プロジェクトを作成します。
左のペインから [Intel® Visual Fortran Projects (インテル® Visual Fortran プロジェクト)] をクリックして、インテル® Fortran プロジェクトの種類を表示します。
ソースコードを含むファイルをプロジェクトに追加します。
[Project (プロジェクト)] メニューから [Properties (プロパティ)] を選択します。プロジェクトの [Property Pages (プロパティ ページ)] ダイアログボックスが表示されます。
[Fortran] フォルダーから [Libraries (ライブラリー)] カテゴリーを選択し、[Runtime Library (ランタイム・ライブラリー)] を [Multithreaded (マルチスレッド)] または [Multithread DLL (マルチスレッド DLL)] (または相当するデバッグバージョン) に設定します。
[Build (ビルド)] メニューから [Build Solution (ソリューションのビルド)] を選択して、実行ファイルを作成します。
コマンドラインからマルチスレッド・プログラムをコンパイルおよびリンクする方法:
LIB 環境変数に、ライブラリー・ファイルを含むディレクトリーが指定されていることを確認します。
/threads オプションを使用して、プログラムのコンパイルとリンクを行います。次に例を示します。
ifort /threads mythread.f90
確実にスレッドセーフ/再入可能なランタイム・ライブラリーがリンクされ、正しく初期化されるように、リンク段階およびメインルーチンのコンパイルで threads オプションを使用すべきです。