次表は,非文字型の宣言文で使うことができるデータ型を示しています。
BYTE 1 |
LOGICAL 2 |
LOGICAL([KIND=]1) (または LOGICAL*1) |
LOGICAL([KIND=]2) (または LOGICAL*2) |
LOGICAL([KIND=]4) (または LOGICAL*4) |
LOGICAL([KIND=]8) (または LOGICAL*8) |
INTEGER 3 |
INTEGER([KIND=]1) (または INTEGER*1) |
INTEGER([KIND=]2) (または INTEGER*2) |
INTEGER([KIND=]4) (または INTEGER*4) |
INTEGER([KIND=]8) (または INTEGER*8) |
REAL 4 |
REAL([KIND=]4) (または REAL*4) |
DOUBLE PRECISION (REAL([KIND=]8) または REAL*8) |
REAL([KIND=]16) (または REAL*16) 5 |
COMPLEX 6 |
COMPLEX([KIND=]4) (または COMPLEX*8) |
DOUBLE COMPLEX (COMPLEX([KIND=]8) または COMPLEX*16) |
COMPLEX([KIND=]16) (または COMPLEX*32) 5 |
1 INTEGER(1) と同じ。
2 基本論理型として扱われます。 3 基本整数型として扱われます。 4 基本実数型として扱われます。 5 VMS, U*X。 6 基本複素数型として扱われます。 |
非文字型宣言文では,省略可能なデータ・オブジェクトまたは関数の名前を v*n として宣言することができます (n は v の長さ (バイト数) です)。宣言された長さは,データ型の暗黙の長さよりも優先されます。
n の値は,v の型に応じた有効な長さでなくてはなりません。型指定子 BYTE,DOUBLE PRECISION,および DOUBLE COMPLEX は有効な長さを 1 つしか持っていないので,これらについては n 指定子は無効となります。
配列宣言の場合,n は配列名の直後に置かれなくてはなりません。たとえば,INTEGER 宣言文 IVEC*2(10) は,10 個の要素を持つ INTEGER(2) 配列です。
例
非文字型宣言文では,後の方に置かれた種別パラメタはすべての初期種別パラメタを無効にします。たとえば,次の文を考えます。
INTEGER(2) I, J, K, M12*4, Q, IVEC*4(10) REAL(8) WX1, WXZ, WX3*4, WX5, WX6*4 REAL(8) PI/3.14159E0/, E/2.72E0/, QARRAY(10)/5*0.0,5*1.0/
第 1 の文では,M12*4 と IVEC*4 は KIND=2 の宣言を無効にします。第 2 の文では,WX3*4 と WX6*4 は KIND=8 の宣言を無効にします。第 3 の文では,QARRAY は,REAL(4) 定数から REAL(8) データ型への暗黙の変換によって初期化されます。
関連情報
数値および論理型の基本値に影響を与えるコンパイラ・オプションについては,プログラマーズ・ガイドを参照してください。
型宣言文の一般的な形式と規則については,「型宣言」を参照してください。