データ編集記述子の形式

データ編集記述子は以下のいずれかの形式を取ります。

[r]c
[r]cw
[r]cw.m
[r]cw.d
[r]cw.d[Ee]

r
書式反復数。r の範囲は 1 ~ 2147483647 (2**31-1) です。r を省略した場合,値 1 が使用されます。

c
次のいずれかの書式コード:IBOZFEENES, D, G, L,または A

w
欄内のけた数 (欄幅)。省略した場合,システムが基本値を適用します (「データ編集記述子の基本幅」を参照)。w の範囲は,Alpha および ia64 プロセッサーでは 1 ~ 2147483647 (2**31-1),ia32 プロセッサーでは 1 ~ 32767 (2**15-1) です。IBOZ,および F の場合,範囲はゼロから始まることができます。

m
欄内に存在しなければならないけた数の最小値 (先頭のゼロを含む)。m の範囲は,Alpha および ia64 プロセッサーでは 0 ~ 32767 (2**15-1),ia32 プロセッサーでは 0 ~ 255 (2**8-1) です。

d
小数点の右側のけた数 (有効けた数)。d の範囲は,Alpha および ia64 プロセッサーでは 0 ~ 32767 (2**15-1),ia32 プロセッサーでは 0 ~ 255 (2**8-1) です。

データ編集記述子に対してけた移動数が指定されていると,有効けた数はその影響を受けます。

E
指数欄を識別。

e
指数のけた数。e の範囲は,Alpha および ia64 プロセッサーでは 1 ~ 32767 (2**15-1),ia32 プロセッサーでは 1 ~ 255 (2**8-1) です。

規則と振る舞い

Fortran 95/90 (およびそれ以前の標準) では,A 形編集記述子でのみ欄幅を省略することができました。しかし,Compaq Fortran では,どのデータ編集記述子でも欄幅を省略することが可能です。

rwmd,および e は,いずれも正符号なし基本整数型定数表現であるか,可変書式でなくてはなりません。種別パラメタは指定できません。名前付き定数であってはなりません。

rwmd,および e の実際に使用可能な範囲は,記録の大きさ (RECL) とファイル・システムの制約を受けることがあります。

データ編集記述子には,以下の個別形式があります。

整数 Iw[.m]Bw[.m]Ow[.m]Zw[.m]
実数と複素数 Fw.dEw.d[Ee]ENw.d[Ee]ESw.d[Ee]Dw.dGw.d[Ee]
論理 Lw
文字 A[w]

F 形,E 形,D 形,および G 形編集記述子では,d がゼロであっても,必ず d を指定する必要があります。小数点も必須です。wd は,ともに指定するか,ともに省略しなくてはなりません。

書式反復数を使うと,書式化を単純化することができます。たとえば,次の 2 つの文は等価です。

	20	FORMAT (E12.4,E12.4,E12.4,I5,I5,I5,I5)
	20	FORMAT (3E12.4,4I5)

	! この WRITE 文は,5 カラムの 3 つの整数,
	! F7.2 と F5.2 の値の組の 4 つの実数を出力します。
		INTEGER(2) int1, int2, int3
		REAL(4) r1, r2, r3, r4
		DATA int1, int2, int3 /143, 62, 999/
		DATA r1, r2, r3, r4 /2458.32, 43.78, 664.55, 73.8/
		WRITE (*,9000) int1, int2, int3, r1, r2, r3, r4
	9000	FORMAT (3I5, 2(1X, F7.2, 1X, F5.2))

この例は,以下の出力を生成します。

	143  62  999 2458.32 43.78  664.55 73.80

関連情報