構造型成分定義中で初期値指定が行われていると,暗黙的初期値指定が行われます (これは Fortran 95 の機能です)。
成分の宣言された初期値は,定義が PRIVATE である場合にも適用されます。
暗黙的初期値指定は,INTENT(OUT) の仮引数に適用されます。構造型成分が SAVE 属性を持つということではありません。
型宣言文中の明示的初期値指定は,暗黙的初期値指定よりも優先されます。
配列成分の暗黙的初期値指定を行うには,以下のいずれかを含んでいる定数式を使用します。
配列構成子
各配列要素の値となる単一のスカラ
ポインタの結合状態には,結合,空,および不定があります。暗黙的初期値指定がない場合,ポインタの状態は不定となります。ポインタ成分に対して空状態を宣言するには,=>NULL() を使用してください。
例
構造型のすべての成分に対して初期値を宣言する必要はありません。
TYPE REPORT CHARACTER (LEN=20) REPORT_NAME INTEGER DAY CHARACTER (LEN=3) MONTH INTEGER :: YEAR = 1995 ! 暗黙的初期値指定の成分のみ END TYPE REPORT
次の例を考えます。
TYPE (REPORT), PARAMETER :: NOV_REPORT = REPORT ("Sales", 15, "NOV", 1996)
この場合,型宣言文中の明示的初期値指定は,NOV_REPORT の成分 YEAR よりも優先されます。
成分の基本初期値も,型定義に宣言されている暗黙的初期値指定によって無効にされます。
TYPE MGR_REPORT TYPE (REPORT) :: STATUS = NOV_REPORT INTEGER NUM END TYPE MGR_REPORT TYPE (MGR_REPORT) STARTUP
この場合,STARTUP の成分 STATUS は NOV_REPORT から初期値を受け取り,成分 YEAR の初期値は無効となります。