インテル® Fortran コンパイラー 19.1 デベロッパー・ガイドおよびリファレンス
このリリースでは、次の Fortran 2018 機能が追加されました。
IMPLICIT NONE 文の拡張により、すべての外部プロシージャーを EXTERNAL として宣言する必要があると指定できるようになりました。
GENERIC 文が拡張され、汎用インターフェイスの宣言に使用できるようになりました。
DO CONCURRENT 文の変数の局所性を指定できるようになりました。
編集記述子 E と D、EN、ES、G が拡張され、F 編集記述子と同様にフィールド幅をゼロにできるようになりました。
フィールド幅がゼロの場合と同様に、データ編集記述子の指数幅 e をゼロにできるようになりました。
RN 編集記述子は、Fortran 2018 および ISO/IEC/IEEE 60559:2011 で指定されているように最近値に丸められるようになりました。
EX 編集記述子は、16 進形式の浮動小数点値の入力と出力を許可します。
非アドバンシング I/O では SIZE= を指定できます。
保留状態の非同期操作に対する INQUIRE 文の SIZE= と POS= の値が標準化されました。
INQUIRE 文の RECL= 指定子に代入される値は、標準化された値になりました。
新しい形式の組込み関数 CMPLX は、第 1 引数が COMPLEX 型の場合 KIND= キーワードを必要としません。
SIGN 関数の引数は異なる種別にすることができます。
名前付き定数 STAT_FAILED_IMAGE と STAT_UNLOCKED_FAILED_IMAGE が組込みモジュール ISO_FORTRAN_ENV で定義されました。
名前付き定数種別型 C_PTRDIFF_T が組込みモジュール ISO_C_BINDING に追加されました。
非ブロック DO 文と算術 IF 文は、Fortran 2018 で削除されました。インテル® Fortran コンパイラーは、Fortran 標準で削除された機能を完全にサポートしています。
COMMON、EQUIVALENCE、および BLOCKDATA 文は廃止されました。
ラベル付き DO ループは廃止されました。
組込みプロシージャーの固有名は廃止されました。
次のアトミック・サブルーチンが実装されました: ATOMIC_ADD、ATOMIC_AND、ATOMIC_CAS、ATOMIC_FETCH_ADD、ATOMIC_FETCH_AND、ATOMIC_FETCH_OR、ATOMIC_FETCH_XOR、ATOMIC_OR、ATOMIC_XOR。
次の集合サブルーチンが実装されました: CO_BROADCAST, CO_MAX, CO_MIN, CO_REDUCE、CO_SUM。
SELECT RANK 構造が、ランク引き継ぎ仮引数の操作を可能にするため実装されました。
Fortran 2018 標準に従って、コンパイラーは非標準の組込みプロシージャーとモジュールの仕様を診断するようになりました。
最新の Fortran 2018 標準に準拠するため、C_F_PROCPOINTER が IMPURE になりました。
組込みモジュール ISO_C_BINDING、IEEE_ARITHMETIC、IEEE_EXCEPTIONS の変換組込み関数が宣言式で許可されるようになりました。
IEEE_GET_ROUNDING_MODE と IEEE_SET_ROUNDING_MODE 組込みモジュール・プロシージャーでオプション引数 RADIX を指定できるようになりました。
IEEE_ROUND_TYPE と IEEE_AWAY が IEEE_ARITHMETIC 組込みモジュールに追加されました。
組込みモジュール IEEE_ARITHMETIC で定義されている IEEE_RINT 関数にオプションの ROUND 引数が追加されました。
組込みモジュール IEEE_ARITHMETIC に関数 IEEE_FMA、IEEE_SIGNBIT, IEEE_NEXT_UP、および IEEE_NEXT_DOWN が追加されました。
組込みモジュール IEEE_EXCEPTIONS に新しい派生型 IEEE_MODES_TYPE が追加されました。これを使用して、IEEE_GET_MODES と IEEE_SET_MODES 組込みモジュール・プロシージャーで IEEE_MODES を保存および復元できます。
SUBNORMAL は DENORMAL と同義語になりました。
次の組込みモジュール・プロシージャーが実装されました。
オプションの STAT= 指定子が ATOMIC_REF および ATOMIC_DEFINE 組込みプロシージャーに追加されました。
オプションの STAT= 指定子と ERRMSG= 指定子が、MOVE_ALLOC 組込みプロシージャー、イメージセレクター、および CRITICAL 文と構造 に追加されました。
組込みプロシージャーへの INTEGER と LOGICAL 引数は、デフォルトの種別である必要がなくなりました。
FAIL IMAGE 文が実装されました。実際のイメージ障害を待たずに、失敗したイメージのリカバリーコードをデバッグできます。
組込み関数 FAILED_IMAGES、IMAGE_STATUS、および STOPPED_IMAGES は実装されましたが、本リリースでは完全な機能を備えていません。
引数 "team" は、これらの組込み関数では未実装です。将来のリリースで追加される予定です。
次の Fortran 2018 機能がサポートされています。
COSHAPE 組み込み関数
Co-Array 引数の cobound (共通境界) を返します。
PUBLIC および PRIVATE 文にモジュール名、OpenMP* リダクション識別子、定義された I/O 汎用仕様を追加できるようになりました。
イメージ間の同期を提供する機能:
EVENT_QUERY 組込みサブルーチン
ISO_FORTRAN_ENV 組込みモジュールの派生型 EVENT_TYPE
IMPORT 文の拡張
内部サブルーチンと BLOCK 構造で親子結合の制御に IMPORT 文を使用できるようになりました。新しい形式は次の 3 つです。
IMPORT, ALL
IMPORT, NONE
IMPORT, ONLY: import-name-list
モジュール・エンティティーのデフォルトのアクセス方法
結合によりアクセスされるモジュール名が PUBLIC または PRIVATE access-id-list に表示されます。これを使用して、モジュールからアクセス可能なすべてのエンティティーのデフォルトのアクセス方法を設定できます。
C 言語との互換性保持
ランク引継ぎ配列が C_SIZEOF 組込み関数の引数として許可されるようになりました。
C_F_POINTER を除く ISO_C_BINDING 組込みモジュールのすべての標準プロシージャーが純粋になりました。
NON_RECURSIVE キーワードの拡張
このキーワードは、プロシージャーを非再帰として宣言します。以前の Fortran 標準のデフォルトでは、RECURSIVE として宣言されない限りプロシージャーは非再帰でした。Fortran 2018 ではこのデフォルトが変更されています。インテル® Fortran コンパイラーは、NON_RECURSIVE キーワードを実装済みですが、このリリースのデフォルトのコンパイルモードは非再帰のままです。これは、将来のリリースでは変更される予定です。
I/O の拡張
G0.d 編集記述子で、I0、L1、A 編集記述子の規則を使用して、それぞれ整数、論理、文字データの出力を指定できます。
型引き継ぎ配列、ランク引き継ぎ配列、C 記述子、および RANK 組込み関数を含む Fortran と C 言語の互換性を強化する機能
ERROR STOP 文は、PURE プロシージャーで指定できます。
Fortran 標準については、Fortran 標準委員会の Web サイト http://j3-fortran.org/ (英語) を参照してください。