ナビゲーション:前へ 上へ 次へ
11.8 その他の便利な機能 大凡5.3
- 構造体構築子内で、割付可能な成分の値は省略することができます。 省略するとNULL()を指定した事と同じ意味となります。
- [5.3.1] 多相割付変数への代入が許されています。 変数が異なる動的な型もしくは型パラメータである場合、配列である場合、異なる形状である場合には、まず最初に解放されます。 割付されていない場合(もしくは上記で解放された場合)正しい型と形状で割付され、式の値が代入されます。 この機能の動作はALLOCATE(variable,SOURCE=expr)の動作に似ています。
- STOP文で、stop-codeが整数型もしくは基本文字型のどのようなスカラ定数式も指定できるようになりました。 (この変更はPAUSE文にも適用されていますが、現在ではPAUSE文はFortran標準ではなくなっています)
- ENTRY文は削除予定機能として扱われます。
- CONTAINS文の後に空の内部副プログラム部分、モジュール副プログラム部分、 及び型束縛手続部分の記述が許されるようになりました。 型束縛手続部分の場合では(特に効果のない)PRIVATE文が (指定する必要のない)CONTAINS文の後に許されるようになりました。
- [5.3.1] 内部手続及びモジュール手続において、 END文の FUNCTION 及び SUBROUTINE キーワードが省略可能となりました。(手続き名も指定しない場合のみ) 今までは外部手続でのみ省略可能でした。
-
型束縛手続宣言文が複数の型束縛手続を宣言できるようになりました。
例)PROCEDURE,NOPASS :: a PROCEDURE,NOPASS :: b=>x PROCEDURE,NOPASS :: cは以下のように書くことができます。PROCEDURE,NOPASS :: a, b=>x, c -
NEWUNIT=指定子がOPEN文に追加されました。
これにより他の論理装置番号と重ならない新しい特別な装置番号(負の値)を割り付けることができるようになりました。
例)INTEGER unit OPEN(FILE='output.log',FORM='FORMATTED',NEWUNIT=unit) WRITE(unit,*) 'Logfile opened.'NEWUNIT=指定子はFILE=指定子を指定した場合か、 もしくはSTATUS=指定子に'SCRATCH'を指定した場合にのみ利用可能です。 -
Fortran 2008のルールが総称解決と総称内手続きのあいまいさの判断に使われるようになりました。
このルールでは:
- 仮手続は仮引数と区別が可能です。
- ALLOCATABLE仮変数はINTENT(IN)を持つPOINTER仮変数と区別可能です。
