以下の Fortran 95 機能は,Fortran の新しい機能です。
FORALL 文および構文
Fortran 90 では,配列構成子と RESHAPE および SPREAD 組込み関数を使って,配列値を要素ごとに構築することができました。Fortran 95 の FORALL 文および構文は,これとは別の構築方法を提供します。
FORALL を使うと,配列要素,部分配列,文字部分列,またはポインタ指示先を,要素添字の関数として明示的に宣言することができます。FORALL 構文を使うと,複数の配列代入で,同じ要素添字制御を共有することができます。
FORALL は WHERE を一般化したものです。どちらも配列選別代入を行うことができますが,WHERE が全体配列を使用するのに対し,FORALL は要素添字を使用します。
これまでの Compaq Fortran は,FORALL 文および構文を言語拡張として提供していました。
PURE ユーザー定義手続
純粋ユーザー定義手続は,共通ブロック中の変数値を変更するといった副作用がありません。純粋手続を宣言するには,関数またはサブルーチン中で PURE 接頭辞を使用します。純粋関数は宣言文中で使用することができます。
これまでの Compaq Fortran は,純粋手続を言語拡張として提供していました。
ELEMENTAL ユーザー定義手続
要素別処理ユーザー定義手続は,純粋手続の制約付き形式です。要素別処理手続に配列を渡し,その要素を 1 つずつ処理させることができます。要素別処理手続を宣言するには,関数またはサブルーチン中で ELEMENTAL 接頭辞を使用します。
CPU_TIME 組込みサブルーチン
この新しい組込みサブルーチンは,プロセッサー時間のプロセッサーに依存した近似値を返します。
NULL 組込み関数
Fortran 90 では,ポインタ代入演算を使ってポインタにヌル値を代入することができませんでした。Fortran 90 ポインタは,実行時に明示的に割り付ける,空にする,または指示先に結合するという方法を取らないと,結合状態を決定することはできませんでした。
Fortran 95 の NULL 組込み関数を使うと,ポインタを空にすることができます。
新たな廃止予定事項
Fortran 95 では,Fortran 90 の廃止予定事項を廃止しており,さらに新たな廃止予定事項を定めています。
Compaq Fortran は Fortran 95 の廃止事項を完全にサポートしています。