インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® Fortran プログラムの移植性を最大限に高めるには、標準言語機能を使用してください。プログラムの移植性を向上するために堅固な実装を設計したり、またはプログラムの読みやすさ、機能性、および効率性を向上するために拡張機能を使用することもできます。
プログラム構文が Fortran 標準の構文規則や制約に違反する場合、コンパイラーに警告を出力させることができます。これにより、プログラム全体が Fortran 標準に準拠するわけではありませんが、多くの互換性の問題を回避するのに役立ちます。/stand (Windows*) または -std (Linux* および macOS*) オプションで、このチェックを有効にし、基準とする Fortran 標準を指定できます。基準とする Fortran 標準を指定しない場合、Fortran 2008 が使用されます。
コンパイラーが現在の Fortran 規格の動作に従うために必要なすべてのオプションを有効にするには、standard-semantics コンパイラー・オプションを使用します。
すべての Fortran 規格の拡張が、ほかのプラットフォームへの移植の際に問題を引き起こすわけではありません。多くの拡張は幅広いプラットフォームでサポートされており、プログラムの移植先のシステムがその拡張をサポートしているのであれば、使用を避ける必要はありません。ただし、別のシステムで同じ機能が、インテル® Fortran と同じように実装されているという保証はありません。すべてのプラットフォームに準拠されていることが保証されているのは Fortran 規格だけです。
インテル® Fortran コンパイラーは、Windows*、Linux*、macOS* システムを含む複数のプラットフォーム上で、多数の言語拡張子をサポートします。また、「Intel® Fortran Language Reference」(英語) では、各言語要素が他のプラットフォームでサポートされているかどうか識別しています。
次の理由から、すべての外部プロシージャーを EXTERNAL 文またはプロシージャー・インターフェイス・ブロックで宣言することを推奨します。
新しい Fortran 規格では、この言語に新しい組込みプロシージャーが多数追加されました。
FORTRAN 77 などの以前の Fortran 規格に準拠していたプログラムには、新しい Fortran 規格のプロシージャーと同じ名前の非組込み関数またはサブルーチンが含まれている可能性があります。
プロセッサーによっては、プログラム内のプロシージャー名と重複する非標準の組込みプロシージャーを内蔵している可能性があります。
外部プロシージャーを明示的に宣言しなかった場合、その名前が組込みプロシージャー名と重複すると、プロセッサーは、その外部ルーチンではなく、組込みプロシージャーを呼び出します。インテル® Fortran コンパイラーが名前の定義を解決する方法に関する詳細は、「Resolving Procedure References」(英語) を参照してください。