文:名前付き共通ブロック中の非ポインタ変数のための初期値を提供します。
形式
BLOCK DATA [name]
name
初期値設定プログラム単位名。
specification-part
以下に示す文を 1 つまたは複数指定したもの。
COMMON | INTRINSIC | STATIC |
DATA | PARAMETER | TARGET |
構造型定義 | POINTER | 型宣言 2 |
DIMENSION | RECORD 1 | USE 3 |
EQUIVALENCE | 記録構造体宣言 1 | |
IMPLICIT | SAVE | |
1 詳細は,「RECORD」と「STRUCTURE...END STRUCTURE」を参照してください。
2 次の属性だけを含むことができます:DIMENSION, INTRINSIC, PARAMETER, POINTER, SAVE, STATIC, または TARGET 3 名前付き定数の参照だけが可能です。 |
規則と振る舞い
初期値設定プログラム単位は,名前を持つ必要はありませんが,1 つの実行形式プログラム中に名前なし初期値設定プログラム単位は 1 つしか存在できません。
END 文の次に名前が続く場合,BLOCK DATA 文で指定された名前と同じものでなくてはなりません。
初期値設定プログラム単位にはインタフェース宣言は存在してはならず,初期値設定プログラム単位は実行文を含むことはできません。
DATA 文が名前付き共通ブロック中の変数を初期化する場合,初期値設定プログラム単位は共通ブロックを設定するために必要な宣言文の完全な組を持っていなくてはなりません。ただし,ブロック中のすべての変数を初期化する必要はありません。
初期値設定プログラム単位は,複数の共通ブロックの初期値を設定し,定義することができますが,1 つの実行形式プログラム中で,同じ共通ブロックが複数の初期値設定プログラム単位に含まれていてはなりません。
初期値設定プログラム単位名を別のプログラム単位の EXTERNAL 文で宣言すると,リンク時に,オブジェクト・ライブラリー中で初期値設定プログラム単位を強制的に検索させることができます。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
COMMON,DATA,EXTERNAL,プログラム単位と手続
例
次に初期値設定プログラム単位の例を示します。
BLOCK DATA BLKDAT INTEGER S,X LOGICAL T,W DOUBLE PRECISION U DIMENSION R(3) COMMON /AREA1/R,S,U,T /AREA2/W,X,Y DATA R/1.0,2*2.0/, T/.FALSE./, U/0.214537D-7/, W/.TRUE./, Y/3.5/ END
以下に他の例を示します。
! 主プログラム CHARACTER(LEN=10) LakeType REAL X(10), Y(4) COMMON/Lakes/a,b,c,d,e,family/Blk2/x,y ... ! 以下の BLOCK DATA 副プログラムは, ! 名前付き共通ブロック /Lakes/ を初期化します。 ! BLOCK DATA InitLakes COMMON /Lakes/ erie, huron, michigan, ontario,& & superior, fname DATA erie, huron, michigan, ontario, superior /1, 2, 3, 4, 5/ CHARACTER(LEN=10) fname/'GreatLakes'/ END