インテル® Visual Fortran コンパイラー 10.1 Windows 版は、最高のパフォーマンスを実現する Fortran アプリケーションを作成するためのツールを提供します。Fortran 2003 規格のさまざまな機能に加え、一般的な言語拡張に幅広く対応した完全な Fortran 95 コンパイラーです。また、OpenMP* に対応し、自動並列化機能も備えるなど、マルチスレッド・コードの開発もサポートしています。
他社製の Fortran コンパイラーおよびインテル® Fortran コンパイラー 8.0 以前 (.mod ファイルを生成するバージョンを含む) でコンパイルされた Fortran のソースは、すべて再コンパイルする必要があります。サードパーティーのライブラリーや .mod ファイルを使用している場合、互換性のあるバージョンをライブラリー・ベンダーから入手してください。サードパーティーのライブラリーの更新で問題が発生した場合は、インテル® プレミアサポートまでお知らせください。Compaq* Visual Fortran (CVF) を使用していた場合、デフォルト・プロシージャーの呼び出しおよび命名規則が CVF とは異なります。CVF からの移植に関しては、こちらを参照してください。
また、インテル® 64 および IA-64 アーキテクチャーにおける、モジュール変数のグローバル名の修飾に関する変更のセクションも参照してください。
インテル® Visual Fortran には、3 つのエディションがあります。
スタンダード・エディションには、以下のコンポーネントが含まれます。
プロフェッショナル・エディションには、スタンダード・エディションのすべての機能に加えて、インテル® マス・カーネル・ライブラリー (インテル® MKL) が含まれています。インテル® MKL には、最大限のパフォーマンスを必要とする工学、科学、金融系アプリケーション向けに高度に最適化およびスレッド化された数値演算関数が含まれています。
プロフェッショナル・エディション IMSL* 同梱には、プロフェッショナル・エディションのすべての機能に加えて、Visual Numerics* 社の IMSL Fortran 数値計算ライブラリーが含まれています。インテル® Visual Fortran 9.1 プロフェッショナル・エディションの有効なライセンスをお持ちの場合は、インテル® ソフトウェア開発製品レジストレーション・センターにログインして、ライセンスキーの再送手続きを行うと、インテル® MKL を使用できるアップデート・ライセンスを取得できます。
コンパイラーのインストールとは別に、インテル® MKL および IMSL Fortran 数値計算ライブラリーのインストールが必要です。詳細は、コンパイラーの『インストール・ガイド』を参照してください。
注: このドキュメントで <install-dir>
として表記されているデフォルトのインストール・ディレクトリーは、%ProgramFiles%\Intel
です。インテル® Visual Fortran コンパイラー 10.1 は、Compiler\Fortran\10.1.xxx
サブフォルダーにインストールされます。
注: Microsoft Visual Studio Premier Partner Edition は、評価版を含む、一部のライセンスでは提供されなくなりました。詳細は、動作環境を参照してください。
本製品で提供されるツールについてのテクニカルサポートおよび製品のアップデート情報を受けるには、製品の登録が必要です。詳細は「テクニカルサポート」セクションを参照してください。
このセクションでは、インテル® Visual Fortran コンパイラー 10.0 以降の新機能および変更点について説明します。<install-dir>\IDB\10.1\docs
フォルダーにあるインテル® デバッガーのリリースノートも参照してください。
バージョン 10.0 では、IA-32 システムまたはインテル® 64 対応システム用のアプリケーションを開発する場合、Microsoft 開発製品を別途購入してインストールする必要がなくなりました。Microsoft Visual Studio 2005、Microsoft Visual Studio .NET 2003 (IA-32 システムのみ)、または Microsoft Visual C++* .NET 2003 (IA-32 システムのみ) がインストールされていない場合、インテル® Visual Fortran のインストーラーによって Microsoft Visual Studio 2005 Premier Partner Edition がインストールされます。これにより、デバッガーに加え、ビジュアル開発環境およびコマンドラインでの開発に必要なツールとライブラリーを含む Microsoft ビジュアル開発環境が提供されます。
注: Microsoft Visual Studio Premier Partner Edition は、評価版を含む、一部のライセンスでは提供されなくなりました。詳細は、動作環境を参照してください。
Microsoft Visual Studio 2005 Premier Partner Edition を使用する場合、次の制限が適用されます。
Microsoft Visual Studio 2005、Visual Studio .NET 2003 (IA-32 システムのみ)、または Visual C++ .NET 2003 (IA-32 システムのみ) を別途購入した場合、これらの制限は適用されません。
インテル® COM サーバーウィザードは、Fortran で COM サーバーを作成して、.NET 環境のアプリケーションを含む、その他のアプリケーションにサービスを提供します。Component Object Model (COM) は、再利用可能なソフトウェア・コンポーネントを作成するためのメカニズムを提供します。COM は、ソフトウェアの相互運用性を高めることを目的として設計されたオブジェクト・ベースのプログラミング・モデルです。つまり、2 つ以上のアプリケーションまたはコンポーネントが、異なるベンダーによって異なる時期に、異なるプログラミング言語で作成された場合でも、またそれらが異なるオペレーティング・システムを実行している異なるマシンで動作していても、簡単に協調動作を行うことができます。
詳細は、ドキュメントの「インテル® Fortran COM サーバーの使用」を参照してください。
Fortran Windows アプリケーションのさまざまなプログラミング手法および使用例を紹介したサンプルプログラムのセットが、<install_dir>\Compiler\Fortran\10.1.xxx\samples
フォルダーにあります。コンパイラー・ドキュメントで使用しているサンプルプログラムも含まれています。詳細は、samples
フォルダーにある samples.htm を参照してください。バージョン 10.1 では、COM\Autodice、DLL\DynamicLoad および QuickWin\Poker の 3 つのサンプルが追加されました。
複数のバージョンのインテル® Visual Fortran コンパイラーをインストールすることができます。バージョン 10.0 以降は、複数のアップデート・バージョンを共存させることができます。バージョン 10.1 のアップデートをインストールする場合、10.1 の古いバージョンは自動的にアンインストールされません。Microsoft Visual Studio のユーザーは、Microsoft Visual Studio ([ツール] - [オプション] - [Intel® Fortran
(インテル® Fortran)] -[Compiler
(コンパイラー)]) で新しいバージョンを選択する必要があります。以前のバージョンをアンインストールする場合は、このバージョンをインストールする前 (推奨) でもインストールした後でもアンインストールできます。アップデートごとに、インストール・パスは異なります。
以下に、バージョン 10.0 の最初のリリースから変更または追加されたコマンドライン・オプションをリストします。これらのオプションの詳細な情報は、コンパイラーのドキュメントを参照してください。
/assume:[no]old_boz
/assume:[no]old_unit_star
/assume:[no]old_xor
.XOR.
をコンパイラーで組み込み演算子として定義するかどうかを指定します。下記の説明を参照してください。(デフォルト: オン) /assume:protect_parens
REAL
および COMPLEX
の式評価で、演算の関連付けを変更せずに、括弧を考慮に入れて最適化するかどうかを指定します。(デフォルト: オフ) /assume:[no]realloc_lhs
/assume:[no]std_mod_proc_name
/check:[no]pointer
ALLOCATABLE
変数によるアクセスのランタイムチェックを有効または無効にします。(デフォルト: /check:nopointer
) /fast
/heap-arrays[-]
/help [category]
/QaxS
/Qdiag-<type>:<diag-list>
/Qdiag-dump
/Qdiag-enable:sv[1|2|3]
/Qdiag-enable:sv-include
/Qdiag-file-append[:file]
/Qfnalign[:n]
/Qfp-speculation=<mode>
/Qinline-dllimport[-]
/Qinstrument-functions[-]
/Qipo-jobs:n
/Qkeep-static-consts[-]
/Qopenmp-lib:type
legacy
) /Qopt-multi-version-aggressive[-]
/Qopt-ra-region-strategy[:keyword]
default
) /Qpar-adjust-stack:n
0
) /Qpar-runtime-control[-]
/Qpar-schedule-<keyword>[[:]n]
/Qprefetch[-]
/QxT
を指定する必要があります。(IA-32 および IA-64 システムのみ。デフォルト: オフ) /Qsave-temps[-]
/Qtcheck[:<mode>]
/Qtcollect
/Qunroll-aggressive[-]
/Qvec-guard-write[-]
/QxO
/QxS
/std または /stand
/stand:f03
と同じです。以前のバージョンから変更されました。(デフォルト: オフ)/stand:f03
または /std03
推奨されていない (現在はサポートされているが、将来のバージョンでは削除される予定の) コマンドライン・オプション、または削除された (サポートが終了した) コマンドライン・オプションの詳細は、ドキュメントの「コンパイラー・オプション」 > 「推奨されていないコンパイラー・オプション (古いオプション) と削除されたコンパイラー・オプション」を参照してください。
/fast
の変更
/fast
オプションは、一般的にランタイム・パフォーマンスを向上させるオプションのセットを指定するための簡単な方法です。ドキュメントに記載されているように、オプションのセットは変更されることがあります。/fast
は、バージョン 10.0 では /QxT
を設定しますが、以前のバージョンでは /QxP
を設定します。この変更により不都合が生じる場合は、/fast
を使用する代わりに、各オプションを個別に設定する必要があります。詳細は、ドキュメントの「コンパイラー・オプション」を参照してください。
/stand
の変更バージョン 10.0 では、キーワードなしで /stand
オプションを指定すると、/stand:f03
または Fortran 2003 規格に対する適合性のチェックとして処理されます。Fortran 90 または Fortran 95 への適合性をチェックする場合は、/stand:f90
または /stand:f95
を指定してください。/std
と /stand
は同じです。『Intel® Fortran Language Reference』(英語) は、まだ Fortran 2003 の機能を Fortran 95 の拡張機能として説明しています。
/QxW
オプション インテル® 64 対応システムでは、/QxW
はデフォルトで有効になります。これは、ベクトル化を有効にする効果があります。また、以前のバージョンを使用したときには表示されていなかった場所で、ベクトル化レポートメッセージが表示されます。ベクトル化レポートメッセージを表示しないようにするには、/Qdiag-disable:vec
を使用してください。/QxP
や /QaxT
のような代替オプションも指定できます。
多くのコマンドライン・オプションでは、オプション名でハイフン ("-") の代わりに、古い記述方法の下線 ("_") を使用しています。この古い記述方法は、まだ有効です。
Microsoft Visual Studio .NET 2002 のコマンドラインおよびビジュアル開発環境への統合は提供していません。サポートしている Visual Studio バージョンは 2003 および 2005 です。
バージョン 10.1 から /Qopenmp-lib:compat
オプションにより、OpenMP ライブラリー互換の Microsoft Visual C++ を使用するように指定できるようになりました。アプリケーションに Microsoft Visual C++ で構築されたソースモジュールが含まれており、アプリケーションで OpenMP を使用する場合、このオプションを指定することを推奨します。デフォルトは、/Qopenmp-lib:legacy
で、インテルが提供する OpenMP ライブラリーを使用します。
Fortran 2003 では、以前の規格では拡張機能であった言語機能と、定義されていなかった言語機能の動作が定義されています。インテル® Fortran コンパイラー 10.1 は Fortran 2003 を完全にサポートしていませんが、以前のバージョンでは異なる動作を使用していた以下の場合において、Fortran 2003 規格の動作を採用しています。それ以外のケースでは、コンパイラーのデフォルトは変更されていません。以下に具体的な動作について説明します。
Fortran 95 では、割り当て可能な配列へ代入するには、代入の左辺と右辺の形状および長さパラメーターが一致している必要があります。Fortran 2003 では、形状と長さパラメーターが一致していない場合、代入されている変数の割り当ては解除され、代入されている式と一致する形状と長さパラメーターに再度割り当てられます。バージョン 10.1 では、Fortran 2003 の動作を実行することもできますが、パフォーマンスが大幅に損なわれるため、デフォルトでは形状と長さのパラメーターが一致していなければならない Fortran 95 の動作を選択しています。形状の一致していない変数の割り当てを解除して再度割り当てる Fortran 2003 の動作を選択する場合は、/assume:realloc_lhs
を指定してください。
Fortran 95 では、2 進、8 進、および 16 進の定数 (BOZ 定数) は DATA 文でのみ使用可能で、整数型のスカラー変数の初期化に限定されていました。Fortran 95 の拡張として、インテル® Fortran コンパイラーでは、コンテキストでの BOZ 定数の使用を許可し、コンテキストにより型を解釈していました。Fortran 2003 では、数値型の初期化に加え、INT、REAL、DBLE、および CMPLX 組み込み関数の引数に BOZ 定数を使用することができます。
BOZ 定数の使用に対する Fortran 2003 のセマンティクスは、INT、REAL、DBLE、および CMPLX 組み込み関数の引数として使用する場合を除き、以前のバージョンのインテル® Fortran コンパイラーの拡張と同じです。組み込み関数の引数として BOZ 定数を使用する場合、Fortran 2003 では、組み込み関数によって返されるデータ型のバイナリー値として直接解釈しています。一方、以前のバージョンのインテル® Fortran コンパイラーでは、符号付整数値として解釈してから変換しています。
次に例を示します。
print *, real(Z'40490FDB')
以前の動作 (/assume:old_boz
) は 1.0785300E+09 を出力しますが、新しい動作 (/assume:noold_boz
) は 3.141593 を出力します。
バージョン 10.0 では、インテル® Fortran コンパイラーのデフォルトの動作は Fortran 2003 と同じで、変換せずにバイナリー値を渡します。アプリケーションで以前の動作が必要な場合は、/assume:old_boz
オプションを使用してコンパイルしてください。
インテル® Fortran コンパイラーでは、デフォルトで、I/O ユニットおよび ACCEPT
文、PRINT
文、TYPE
文で使用される暗黙的なユニットに、OPEN
文で指定される可能性があるユニット 5 またはユニット 6 以外のユニット番号が関連付けられています。Fortran 2003 では、デフォルトのユニットに対して OPEN を使用できますが、インテル® Fortran コンパイラーはこの動作に対応していません。
バージョン 10.0 では、この動作に対応するために、/assume:[no]old_unit_star
コンパイル・コマンド・オプションが追加されました。デフォルトの /assume:old_unit_star
は、ユニットにユニット 5 およびユニット 6 以外を使用するという現在および以前の動作を引き継いでいます。Fortran 2003 規格の動作を使用する場合、または Fortran 2003 の組み込みモジュール ISO_FORTRAN_ENV
およびその定義済み定数 INPUT_UNIT
と OUTPUT_UNIT
を使用する場合は、/assume:noold_unit_star
を指定して、ユニット (および ACCEPT
、PRINT
、TYPE
) にユニット 5 (入力) とユニット 6 (出力) を使用できます。
この動作のデフォルトは、将来のリリースで変更されることがあります。
RECL=
書式なしファイルの単位バージョン 10.1 では、バージョン 8.x および 9.x と同様、書式なし I/O でファイルを開く場合、OPEN
文の RECL=
キーワードには、デフォルトの整数のサイズである 4 バイトが指定されます。以前の Fortran 規格では、RECL=
単位は実装依存とされていましたが、Fortran 2003 では 1 桁のバイト単位を推奨しています。書式なし I/O の RECL=
単位にバイトを指定するには、/assume:byterecl
コンパイラー・オプションを使用します。アプリケーションで組み込みモジュール ISO_FORTRAN_ENV
の名前付き定数 FILE_STORAGE_SIZE
を使用している場合も、このコンパイラーオプションを使用する必要があります。
.XOR.
組み込み演算子インテル® Fortran コンパイラーは、組み込み演算子 .XOR.
を拡張として定義します。この結果、組み込み演算子と同じ名前で優先順位が異なるユーザー定義演算子との間で競合が発生します。独自の演算子 .XOR.
を定義している場合は、/assume:no_old_xor
を指定して、コンパイラーの組み込み演算子としての .XOR.
の定義を無効にすることができます。
インテル® Fortran コンパイラーは、モジュール名とプロシージャーまたは変数名をセパレーター "_mp_
" と組み合わせ、標準の名前修飾規則を適用して、モジュール・プロシージャーと変数のグローバル名を作成します。例えば、モジュール MYMOD
のプロシージャー SUB
のグローバル名は MYMOD_mp_SUB
です。/names:lowercase オプションを指定した場合、名前に文字列 _mp_
を含むユーザー・プロシージャーとグローバル名が競合することがあります。アプリケーションでこの競合が発生した場合、オプション /assume:noold_mod_proc_name
を指定してください。このオプションは、セパレーターの大文字と小文字を変換してデフォルトの名前と逆になるようにします。名前の一貫性を保つために、アプリケーション全体で同じオプションを指定する必要があります。
バージョン 10.1 は、ファイルをバイトのストリームとして読み書きできる Fortran 2003 ストリーム I/O 機能をサポートします。ストリームアクセスを有効にするには、ACCESS='STREAM'
を指定してファイルを開いてください。READ
および WRITE
文は、ファイルの位置を指定する POS=
キーワードをサポートします。詳細は、『Intel® Fortran Language Reference』(英語) を参照してください。
インテル® Fortran コンパイラーは、OPEN 文で RECORDTYPE 値 STREAM、STREAM_CR および STREAM_LF を拡張としてサポートしています。以前のバージョンでは、ドキュメントと実装のどちらも不正確で、この 2 つに一貫性がありませんでした。古い動作は次のとおりです。
さらに、CARRIAGECONTROL='NONE' が指定されると、動作が変更されていました。
バージョン 10.1 では、動作が次のように変更されました。
新しいオプションが次のように定義されました。
CARRIAGECONTROL は RECORDTYPE の動作に影響しなくなりました。
Windows のデフォルトのレコード区切り文字は CR-LF で、Linux および Mac OS では LF です。これらの変更により、3 つのオペレーティング・システムすべてで、一貫した方法で特定の区切り文字を指定できるようになりました。
ソースを変更しないでアプリケーションのランタイム動作を変更する場合、新しい環境変数 FOR_FMT_TERMINATOR
を定義してください。この環境変数の値は、次の形式になります。
mode[:ulist][;mode[:ulist]...]
mode は CR
、LF
、CRLF
のいずれかです。ulist は mode を適用するユニット番号の範囲 (例えば、2,17-20, 91
) です。
バージョン 9.1 の最初のリリースから、次の Fortran 2003 規格の新機能が追加されています (一部の機能は、バージョン 9.1 のアップデートで追加されました)。詳細は、『Intel® Fortran Language Reference』(英語) を参照してください。
/assume:byterecl
および /assume:noold_unit_star
を使用してコンパイルする必要があります) COMMAND_ARGUMENT_COUNT 組み込みプロシージャー次の新しい言語機能に関する詳細は、『Intel® Fortran Language Reference』(英語) を参照してください。
ランタイム時のアプリケーションの動作を変更するための新しい環境変数が 2 つ (FORT_FMT_RECL
および FORT_UNFMT_RECL
) 追加されました。
FORT_FMT_RECL
は、書式付き I/O 用に開かれるすべての Fortran ユニットで使用する RECL
(レコード長) のデフォルト値を指定します。符号なし 10 進整数値が定義されると、RECORDTYPE
が 'FIXED'
でない場合、環境変数の値が OPEN
に対して指定されている RECL=
であるかのように使用されます。この環境変数は、リスト指定の出力でカラム数 (デフォルトでは 80) を変更するのによく使用します。
FORT_UNFMT_RECL
は、書式なし I/O 用に開かれるすべての Fortran ユニットで使用する RECL
(レコード長) のデフォルト値を指定します。符号なし 10 進整数値が定義されると、RECORDTYPE
が 'FIXED'
でない場合、環境変数の値が OPEN
に対して指定されている RECL=
であるかのように使用されます。この環境変数は、一般的に、RECORDTYPE='SEGMENTED'
で開いたファイルの最大セグメント長 (デフォルトでは 2040 バイト) を変更するのに使用されます。
KMP_AFFINITY
環境変数 OpenMP アプリケーションでは、KMP_AFFINITY
を使用して、システム上のプロセッサーに実行スレッドをバインドする方法を指定することができます。この設定はプログラム実行中、各スレッドを、生成される順序 (ラウンドロビン方式 (総当り)) に基づき、システム上のプロセッサー・コアにバインドします。KMP_AFFINITY
の値は、次の形式になります。
compact,<level>
<level>
は正の整数です。次に例を示します。
compact,1
<level>
引数は、バイナリーツリーで表されるマシンのトポロジーマップで、バインドされる連続スレッドのコア間のギャップを指定します。レベル 0 は、インテル® ハイパースレッディング・テクノロジー (HT テクノロジー) 対応のプロセッサー、または連続するプロセッサーの連続するスレッド・コンテキストにスレッドがバインドされることを示します。スレッド・コンテキストからコア、そしてパッケージ (プロセッサー) の順に、レベルが 1 つずつ上がります。この設定は、インテル® プロセッサーが搭載され、スレッド・バインディングに対応したオペレーティング・システムでのみサポートされています。
このバージョンでは、メモリーおよびループの最適化を行う最適化レベル O2
と O3
で、並列化 (すべてのシステム) とベクトル化 (IA-32 およびインテル® 64 対応システム) を統合するように最適化機構が完全に再設計されています。
次の改善により、パフォーマンスの大幅な向上が期待できます。
ループ変換 (HLO) の最適化レポートは、ループ変換 (交換) を適用できなかった原因を示し、検出されたボトルネックが、ソースの変更により排除できる場合はループ変換を推奨します。 これらのレポートは、より詳細な情報を提供し、理解しやすいように強化されています。
スタティックの検証は、複数のソースファイルに渡ってプログラムを静的に解析する新しい機能です。ユーザーコード内のさまざまな不具合や言語機能と矛盾している箇所を特定して、重要度に応じて報告します。スタティックの検証は、C/C++ および Fortran のコードを理解し、OpenMP 宣言子の解析も行います。
本リリースでは、スタティックの検証を有効にすると、リンカーが起動されず、実行ファイル、スタティック・リンク・ライブラリー、またはダイナミック・リンク・ライブラリーが生成されません。スタティックの検証により生成されるオブジェクト・ファイルは有効なものではなく、実際の実行ファイル、スタティック・リンク・ライブラリー、またはダイナミック・リンク・ライブラリーの生成には使用できません。現在の使用モデルでは、スタティックの検証は診断レポートを生成するための代替ビルドオプションとして追加されています。
スタティックの検証は、クロスファイルのプロシージャー間の最適化 (/Qipo) とともに使用することはできません。
詳細は、ドキュメントの「アプリケーションのビルド」 > 「エラー処理」 > 「コンパイル時エラー処理」 > 「スタティックの検証診断オプションの使用」を参照してください。
IDE 内でスタティックの検証サポートを有効にすると、最終的なビルドターゲット (例: 実行ファイル) は作成されません。スタティックの検証が必要な場合は、デバッグ (開発) 構成のコピーを作成して、スタティックの検証構成を別途作成することを推奨します。
C/C++
] - [Diagnostics
(診断)] ページを表示します。[Level of Static Analysis (スタティック解析のレベル)] プロパティーと [Analyze Included Files (インクルード・ファイルの解析)] プロパティーを使用して、スタティックの検証を制御します。Win32 API モジュール (IFWINTY
および KERNEL32
) に、Microsoft の新しいオペレーティング・システムで定義されているシンボルが追加されました。アプリケーションのソースでこれらのシンボルを宣言している場合は、正常にコンパイルするために削除しなければならないことがあります。また、新しいモジュール PSAPI
も提供されました。
エントリー
ポイントが含まれる場合の STDCALL
属性の制限インテル® Visual Fortran コンパイラー 10.0 では、エントリーポイントを含むプロシージャーでは、!DEC$ ATTRIBUTES STDCALL
宣言子を使用して SUBROUTINE
、FUNCTION
、ENTRY
に STDCALL
属性が与えられた場合、STDCALL
が必要です。
インテル® 64 および IA-64 プラットフォームで動作する Microsoft Windows では、外部シンボル名とグローバルシンボル名の修飾に関する表記方法が、IA-32 プラットフォームとは異なります。コンパイラーにより生成されるグローバルシンボルには、IA-32 プラットフォームでは先頭に下線が付きますが、インテル® 64 および IA-64 プラットフォームでは下線が省略されます。
以前のバージョンのインテル® Fortran コンパイラーのモジュール変数は、この規則に従っていませんでした。例えば、MOD
モジュールの変数 X
のグローバル名は、IA-32 プラットフォームでは _MOD_mp_X
、インテル® 64 および IA-64 プラットフォームでは MOD_mp_X
となるはずですが、 すべてのプラットフォームで先頭に下線を使用していました。このため、特に C++ や Fortran 以外のコードからモジュール変数を参照する際に、問題やリンクエラーが生じていました。
バージョン 10.0 では、インテル® 64 および IA-64 プラットフォームの場合には、先頭の下線が省略されるように修正されています。Fortran のみで記述されているアプリケーションでは、すべてのソースをリビルドしても、この変更による影響を受けません。この修正による変更は、次のようなアプリケーションに適用されます。
.DEF
ファイルを使用してビルドされたアプリケーション上記のアプリケーションに該当する場合は、早いうちに対処することを推奨します。/switch:fe_old_modvar
コンパイラー・オプションを使用して、以前の動作を利用できます。このオプションを指定すると、バージョン 9.1 以前のように下線が追加されます。Microsoft Visual Studio 環境でこのオプションを指定する場合は、[プロパティ ページ] - [Fortran
] - [Command Line
(コマンドライン)] を選択して、[Additional Options
(追加のオプション)] でこのオプションを入力します。
IA-32 対応アプリケーションは、この変更による影響を受けません。この変更に関する質問は、インテル® プレミアサポートまでお問い合わせください。
バージョン 10.1 では、コンパイラーの Microsoft Visual Studio 2003 および 2005 への統合で以下の変更が行われました。
インテル® Fortran コンパイラーは、最新の Fortran 規格である、Fortran 2003 の多くの機能をサポートしています。現在サポートしていない Fortran 2003 機能についても、今後サポートしていく予定です。現在のコンパイラーでは、以下の Fortran 2003 機能がサポートされています。
インテル® Visual Fortran プロフェッショナル・エディション IMSL 同梱のライセンスをお持ちの場合は、Visual Numerics 社の IMSL Fortran ライブラリー 6.0 を利用できます (別途インストールが必要です)。
Microsoft Visual Studio またはコマンドラインから IMSL ライブラリーを使用するための環境の設定方法については、『インテル® Visual Fortran コンパイラー・ドキュメント』の「アプリケーションのビルド」 > 「ライブラリーの使用」 > 「IMSL* 数値計算/統計解析ライブラリーの使用」を参照してください。この情報は、以前のバージョンから変更されています。IMSL Fortran ライブラリー 6.0 の詳細は、[スタート] - [すべてのプログラム] - [Visual Numerics] を選択して、表示されるドキュメントを参照してください。
IMSL Fortran ライブラリー 6.0 はスレッドセーフです。このため、IMSL を使用する Fortran アプリケーションのビルドプロセスの変更が必要になりました。
INCLUDE
ファイルで指定するライブラリーの名前が変更されました。古いライブラリーの名前が含まれている INCLUDE
の行を変更してください。
link_f90_static.h
および link_f90_static_smp.h
を link_fnl_static.h
または link_fnl_static_hpc.h
に変更してください。 link_f90_dll.h
および link_f90_dll_smp.h
を link_fnl_shared.h
または link_fnl_shared_hpc.h
に変更してください。 %ProgramFiles%\VNI\imsl\fnl600
に変更されました。ビルドスクリプトまたは Visual Studio ([ツール] - [オプション] - [Intel® Fortran (インテル® Fortran)] -[Compiler (コンパイラー)] - [Include Files (インクルード)] および [Library Files (ライブラリー)]) でフォルダー設定を変更する必要があります。 /Qopenmp
オプションを指定してください (Visual Studio の [プロパティ ページ] - [Fortran] - [Language (言語)] - [Process OpenMP Directives (OpenMP 宣言子の処理)] - [Generate Parallel Code (並列コードの生成)])。このオプションを指定すると、すべての変数を自動 (スタックアロケート) にすることを含め、他の影響がある点に注意してください。アプリケーションにリンクするライブラリーのリストに libguide.lib
を追加する別の方法は、Visual Studio の [プロパティ ページ] - [Linker (リンカー)] - [Input (入力)] - [Additional Dependencies (追加の依存ファイル)] でこのライブラリーを指定する方法です。DLL ライブラリーにリンクしている場合は変更する必要はありません。 インテル® Visual Fortran コンパイラー Windows 版の将来のメジャーリリースでは、インテル® デバッガー (IDB) は提供されなくなります。Microsoft Visual Studio でのデバッグには影響ありません。IDB の代わりに Microsoft Visual Studio のデバッグ機能を使用してください。
インテル® コンパイラーは、一般的なプロセッサー・アーキテクチャーとオペレーティング・システムを組み合わせた、3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。
「ネイティブ」とは、アプリケーションを実行するプラットフォームと同じプラットフォームでアプリケーションをビルドする (例えば、IA-32 システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。「クロスプラットフォーム」または「クロスコンパイル」とは、アプリケーションを実行するプラットフォームとは異なる種類のプラットフォームでアプリケーションをビルドする (例えば、IA-64 システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。すべての組み合わせのクロスプラットフォーム開発がサポートされているわけではありません。また、組み合わせによっては、オプションのツールとライブラリーをインストールする必要があります。
サポートされているホスト (アプリケーションをビルドするシステム) とターゲット (アプリケーションを実行するシステム) の組み合わせを次に示します。
ホスト\ターゲット | IA-32 | インテル® 64 | IA-64 |
---|---|---|---|
IA-32 | ○ |
○ |
○ |
インテル® 64 | ○ |
○ |
○ |
IA-64 | × |
× |
○ |
次の Microsoft 開発ソフトウェアのインストールは、ライセンスの種類により、オプションまたは必須となります。バージョン 10.0 (商用版またはアカデミック版) を新規に購入した場合、サポートサービスを更新した場合、およびインテル® Visual Fortran 9.1 プロフェッショナル・エディション以前を使用しており、現在有効なライセンスをお持ちの場合、これらのインストールはオプションです。そうでない場合 (評価版、またはインテル® Visual Fortran 9.1 スタンダード・エディション以前を使用している場合を含む) は、インテル® Visual Fortran 10.0 をインストールする前に、次のいずれかをインストールする必要があります。
w_fc_x_10.1.xxx_IA32.exe
パッケージのみをダウンロードしてインストールしてください。Microsoft Visual Studio Premier Partner Edition を含むパッケージはインストールしないでください。 IA-32 およびインテル® 64 システムでは、Microsoft Visual Studio が見つからない場合で CD またはダウンロードした w_fc_x_10.1.xxx.exe
インストーラーが使用されている場合、Microsoft Visual Studio 2005 Premier Partner Edition がインストールされます。単一アーキテクチャー用および名前に NOVSPPE を含むインストーラーは Visual Studio 2005 Premier Partner Edition をインストールしません。
注: Microsoft Visual Studio.NET 2002 はサポートされていません。
注:
アプリケーションで使用している機械語命令が特定のオペレーティング・システムやプロセッサーでサポートされているかどうかは、アプリケーション開発者自身の責任で確認してください。
Windows Vista では、Visual Studio 2005 のみサポートされています。それ以前のバージョンの Visual Studio はサポートされていません。Visual Studio 2005 を使用する場合は、Windows Vista にインテル® コンパイラーをインストールする前に、Visual Studio 2005 Service Pack 1 (VS 2005 SP1) と Visual Studio 2005 Service Pack 1 Update for Windows Vista (VS 2005 SP1 からリンクされています) をインストールしてください。これらのアップデートをインストールした後に、管理者権限で Visual Studio が実行できることを確認してください。実行できない場合、インテル® コンパイラーを使用できません。Visual Studio のアップデートをインストールする前に、インテル® コンパイラーの統合をアンインストールしてください。詳細は、Microsoft の Visual Studio on Windows Vista (英語) および関連ドキュメントを参照してください。
詳細は、『インストール・ガイド』を参照してください。
Visual Studio で作成したインテル® Fortran プロジェクト/ソリューションをコマンドラインまたはバッチファイルからビルドする場合は、Visual Studio ランチャー、devenv.exe を使用してください。 利用可能なコマンドライン・オプションを表示するには、devenv /?
と入力してください。Microsoft ツール MSBuild および Team Build は、インテル® Fortran プロジェクトのビルドには現在使用できません。
Microsoft Visual Studio 2005 では、スタティック、シングルスレッド Visual C++ ライブラリー libc.lib
および libcd.lib
が削除されました。インテル® Fortran コンパイラーがコマンドラインで Visual Studio 2005 を使用するように指定した場合、以前のバージョンではデフォルトだったスタティック、シングルスレッド・ライブラリーを使用してアプリケーションをビルドしようとすると、コンパイラーは警告を表示します。
ifort: warning: option '/Qvc8' or higher used with '/ML[d]' is not supported
/Qvc8
は、Visual Studio 2005 とのコマンドライン統合を指定した場合、インストール時に ifort.cfg
に追加されます。このオプションは、Visual Studio 2005 を使用していることを ifort
コンパイラー・ドライバーに知らせます。(/static
オプションを指定してコンパイルした場合もこの警告メッセージが表示されます。この問題は、将来のバージョンで修正される予定です。)
このオプションを使用してアプリケーションをリンクしようとすると、リンカーは libc.lib
または libcd.lib
が見つからないというエラーを表示します。次に例を示します。
LINK : fatal error LNK1104:
ファイル 'LIBC.lib' を開けません
このエラーを解決するには、ランタイム・ライブラリーのスレッド/DLL フォームを指定してください。次に例を示します。
/libs:static /threads
/libs:dll
/MT
他に何も指定していない場合、Visual Studio 2005 で ifort
を使用したときのデフォルトは /libs:static /threads
(/MT
と同じ) です。
この問題は、Microsoft Visual Studio IDE からビルドされるプロジェクトにも影響します。この場合、[プロジェクト プロパティ] - [Fortran
] - [コード生成] - [ランタイム・ライブラリー] を新しい値に変更してください。
Visual Studio 2005 で、新規プロジェクト・プラットフォーム (x64
または Itanium
) を追加した後、ツールバーのアクティブ・プラットフォーム・ドロップダウン・リストが空になります。この場合、[出力] ウィンドウをクリックしてアクティブにすると、ドロップダウン・リストの内容が表示されます。
Microsoft Visual Studio 2005 で C/C++ のメインプログラムと Fortran スタティック・ライブラリー依存プロジェクトを使用する場合、Visual Studio は C/C++ 以外の言語の依存プロジェクトの出力ファイル (通常は .lib) を検索しなくなりました。この問題を回避するには、依存プロジェクトの .lib を「ソースファイル」として追加するか、[プロパティ ページ] - [リンカ] - [入力] の [追加の依存ファイル] で .lib のフルパスを指定します。この問題は、Visual Studio 2005 Service Pack 1 で解決されています。
Microsoft Visual Studio 2005 では、Visual C++ プロジェクトを開くまで、ダイアログ エディタ (リソース エディタの一部) で変更はできません。この問題は、Visual Studio 2005 Service Pack 1 で解決されています。
Visual Studio の Fortran プロジェクト・ウィザードを使用して、[Dynamic-Link Library with Sample Code ダイナミック・リンク・ライブラリー (サンプルコード付き)] のようにサンプルコード付きのプロジェクトを作成する場合は、プロジェクト名で次の特殊文字を使用しないでください。
~ ! @ $ ^ ( ) + ` - = { } [ ] ; ' ,
これらの特殊文字を使用すると、プロジェクトの作成に失敗することがあります。また、インテル® COM サーバーウィザードのクラス、インターフェイス、および派生型の名前でも、これらの特殊文字は使用しないでください。
/cpp_cmdifort /cpp_opt "/nologo /fpp /P /E /Qoption,fpp,/no-fort-cont"
IA-64 システムまたはインテル® 64 対応システムで Microsoft Platform SDK を使用してビルドを行うと、以下のようなリンクエラーが発生します。
LIBC.lib(a_str.obj) : error LNK2001:
外部シンボル __security_cookie
は未解決です
[...]
外部シンボル
LIBC.lib(a_str.obj) : error LNK2001:__security_check_cookie
は未解決です
[...]
この問題は、Microsoft Platform SDK のバージョン間の不一致によって発生します。インテルでは、この問題を解決するために Microsoft と作業を行っています。この問題を回避するには、以下のいずれかの方法でアプリケーションをリンクしてください。
ifort hello.f90 /MD
ifort hello.f90 -link bufferoverflowu.lib
ifort hello.f90 /MT bufferoverflowu.lib
/check
オプションまたは /C
オプションを使用してランタイムチェックを有効にすると、コンパイラーはコンパイル時に (その時点で診断を行うことができる) 要求された条件の診断を発行することがあります。例えば、/check:bounds
または /CB
を使用する場合、インデックスが定数である配列の境界違反は、コンパイル時にエラーとなります。
(/Qax*)
使用時のデバッグ情報の制限/Qax[code]
を使用してコンパイルを行うと、各関数について汎用コードと CPU 特有のコードの 2 種類のコードが生成されます。各関数のシンボルは自動 CPU ディスパッチ・ルーチンを参照して、ランタイムに実行するコードセクションを決定します。これらの関数にデバッガーのブレークポイントが名前でセットされると、ディスパッチ・ルーチンでアプリケーションが停止します。その結果、デバッグ時に予測できない動作が発生します。この問題は、インテル® デバッガーおよびインテル® コンパイラーの将来のバージョンで修正される予定です。
/Oy-
オプションを使用してビルドされた IA-32 プログラムをデバッグまたはトレースバック表示できない/Oy-
を使用してコンパイルを行うと、IA-32 EBP レジスターはフレームポインターではなく汎用レジスターとして使用されます。デバッガーおよびトレースバック・ハンドラーは、この方法でコンパイルされた関数への呼び出しを含むスタックから適切にスタックを戻すことができません。
IA-32 システム上で、-fpe:0
オプションを使用してコンパイルされ、浮動小数点例外が起こるプログラムでは、Fortran ランタイム・ライブラリーによって、追加の浮動小数点オーバーフロー例外が発生します。これは、どのバージョンの Microsoft ライブラリーがユーザーのプログラムにリンクされているかをライブラリーが判断するためです。この例外は、1 回のプログラムのプロセスに 1 度だけ発生します。デバッグ時、予測されたアンダーフローに続く予期しないオーバーフローについては、注意する必要はありません。
インストール時にコンパイラーの登録を行わなかった場合は、インテル® ソフトウェア開発製品レジストレーション・センターで登録してください。登録を行うことで、サポートサービス期間 (通常は 1 年間) の間、すべてのアップデートと新しいバージョンの入手を含む、インテル® プレミアサポートのすべての機能にアクセスできます。
テクニカルサポート、製品のアップデート、ユーザーフォーラム、FAQ、ヒント、およびその他のサポート情報は、http://www.intel.com/software/products/support/fwin を参照してください。
注: 代理店がテクニカルサポートを提供している場合は、インテルではなく代理店にお問い合わせください。
Submit Issue
] リンクをクリックします。
Product Type
] ドロップダウン・リストから [Development Environment (tools,SDV,EAP)
] を選択します。
Product Name
] ドロップダウン・リストから [Intel® Fortran Compiler for Windows*
] を選択します。
注: 特定の国へのアクセスを制限する必要があるソースコードを送信する場合は、ソースコードを送信する前にサポート担当者までお問い合わせください。
Intel® Software Development Tools
(インテル® ソフトウェア開発ツール)] - [Intel® Fortran Compiler 10.1.xxx
(インテル® Fortran コンパイラー 10.1.xxx)] - [Fortran Build Environment for applications running on IA-32
(IA-32 対応アプリケーション用インテル® Fortran コンパイラーのビルド環境)] を選択してコマンドウィンドウを開き、次のコマンドを入力します。 ifort /what
w_fc_x_10.1.xxx
) をインテル® プレミアサポートの適切なフィールドにコピーします。また、問題の解決に役立つと思われる事項はすべてお伝えください。
コンパイラーの最新バージョンで修正された問題点については、インテル® ソフトウェア開発製品レジストレーション・センターからダウンロードできる <package ID>_README
(例: w_fc_x_10.1.xxx_README
) を参照してください。
Compiler Error Source Reducer (CESR) は、C/C++ または Fortran ソースコードで構成されたテストケースの収集、縮小、特定、保護、文書化、およびバンドルを行うユーティリティーのセットです。大規模なアプリケーションからインテル® プレミアサポートに送信する小さなテストケースを抽出する場合に便利です。CESR は、インテル® ソフトウェア開発製品レジストレーション・センターの [製品のダウンロード] からダウンロードできます。製品を選択して、バージョンのドロップダウンから [CESR] を選択します。CESR は試験的に提供されているもので、サポートは提供されておりません。CESR に関するご意見およびご感想は、インテル® プレミアサポートまでお寄せください。CESR を利用するには、Python* 2.2 またはそれ以降をあらかじめインストールしておく必要があります。
インテル® コンパイラーのドキュメントおよび HTML ベースの関連ドキュメントは、ナビゲーション、キーワード検索、およびハイパーテキスト機能が利用できるコンパイル済み HTML ヘルプ (.CHM) 形式のファイルです。ブラウザーで .CHM ファイルを開けない場合、Windows エクスプローラーを使用して、Docs
ディレクトリーでファイル名をダブルクリックしてください。
各ドキュメントに簡単にアクセスできるように、ドキュメント・インデックスが提供されています。ドキュメント・インデックスは、<install-dir>Compiler\Fortran\10.1.xxx\Docs\Doc_Index.htm
で、インテル® Visual Fortran コンパイラーのプログラムフォルダーにあります。本リリースでは、Doc_Index.htm
ファイルで説明されているようにオンラインヘルプの構成が変更され、インストール・ガイドと入門ガイドが別になりました。
『Intel® Debugger Manual』(英語) は、インテル® デバッガーのプログラムフォルダーにあります。
Microsoft Visual Studio を使用するアプリケーションのビルドについては、コンパイラー・ドキュメントの「アプリケーションのビルド」 > 「Microsoft* Visual Studio* からのアプリケーション・ビルド」を参照してください。Microsoft Visual Studio に関する詳細は、市販の Microsoft Visual Studio に同梱の『MSDN* ライブラリ』を参照してください。『MSDN ライブラリ』は、インテル® Visual Fortran に同梱の Microsoft Visual Studio Premier Partner Edition には含まれていません。オンライン・バージョンの MSDN ライブラリは、http://msdn2.microsoft.com/en-us/library/ (英語) から利用できます。また、Microsoft Download Center (http://www.microsoft.com/downloads) (英語) で "MSDN Library" を検索して、最新の MSDN ライブラリの DVD イメージをダウンロードすることもできます。
オプションの IMSL Fortran ライブラリーおよびインテル® MKL のドキュメントは、[スタート] メニューにあるそれぞれのプログラムグループから参照できます。
インテル® ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/software/products/ を参照してください。
関連製品の一部を次にリストします。
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) にも一切応じないものとします。インテルによる書面での同意がない限り、インテル製品は、インテル製品の停止を起因とする人身傷害または死亡を想定して設計されていません。
インテル製品は、予告なく仕様や説明が変更される場合があります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。
本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。
最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。
本書で紹介されている注文番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。
Intel、インテル、Intel ロゴ、Intel Core、Itanium、Pentium、VTune、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2007 Intel Corporation. 無断での引用、転載を禁じます。