ブロック・データのプログラム単位は、名前付き共通ブロック内のオブジェクトに初期値を与えます。
>>-BLOCK_DATA_statement---------------------------------------->< >>-+--------------------+-------------------------------------->< '-specification_part-' >>-END_BLOCK_DATA_statement------------------------------------>< |
specification_part では、タイプ宣言、USE、 IMPLICIT、COMMON、DATA、EQUIVALENCE、および整数 POINTER ステートメント、派生型定義、および使用可能な属性仕様ステートメントを指定することができます。指定可能な属性としては、PARAMETER、DIMENSION、 INTRINSIC、POINTER、SAVE、および TARGET があります。
ブロック・データ specification-part 内のタイプ宣言ステートメントには、 ALLOCATABLE または EXTERNAL 属性指定子を含んではなりません。
1 つの実行可能プログラム内に複数のブロック・データ・プログラム単位を入れることができますが、名前を指定しなくてよいのはその中の 1 つだけです。 また、ブロック・データ・プログラム単位内の複数の名前付き共通ブロックを初期化することができます。
ブロック・データ・プログラム単位内の共通ブロックに関する制約事項は、次のとおりです。
PROGRAM MAIN COMMON /L3/ C, X(10) COMMON /L4/ Y(5) END PROGRAM BLOCK DATA BDATA COMMON /L3/ C, X(10) DATA C, X /1.0, 10*2.0/ ! Initializing common block L3 END BLOCK DATA BLOCK DATA ! An unnamed block data program unit PARAMETER (Z=10) DIMENSION Y(5) COMMON /L4/ Y DATA Y /5*Z/ END BLOCK DATA