ブロック・データのプログラム単位は、名前付き共通ブロック内の オブジェクトに初期値を与えます。
>>-BLOCK_DATA_statement---------------------------------------->< >>-+--------------------+-------------------------------------->< '-specification_part-' >>-END_BLOCK_DATA_statement------------------------------------>< |
specification_part では、 型宣言、BIND、USE、IMPLICIT、COMMON、DATA、EQUIVALENCE、 および整数ポインター・ステートメント、派生型定義、および使用可能な属性仕様ステートメントを指定できます。 指定可能な属性としては、DIMENSION、INTRINSIC、 PARAMETER、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