入出力編集
copyright
入出力文に書式を記述することにより、けた数を指定して入出力を行ったり、 出力の形式を指定することができる。

green dot書式項目

書式は、READ文または、WRITE文の入出力リストと共に使用して、 レコードの構造およびそのレコード内のデータ・フィールドの形式を指定する。 書式は、書式項目の組み合わせで記述することができる。
書式項目は、データ編集記述子,制御編集記述子,位置付け編集記述子, 符号制御編集記述子,空白解釈編集記述子,文字列編集記述子がある。

  READ(*,'(書式仕様)')
  WRITE(*,'(書式仕様)')

 書式付きの出力は、以下のように出力項目に対する書式を記述する。

m=10; n=5; a=12.3
WRITE(*,'(2I3,F6.1)') m,n,a


[データ編集記述子]
編集記述子形式説明
  I Iw[.m]整数型データの編集
  F Fw.d実数型データの編集
  E Ew.d[Ee]実数型データの編集
  D Dw.d実数型データの編集
  G Gw.d[Ee]任意の組込み型の入出力項目に対応  
  L Lw論理型データの編集
  A A[w]文字型データの編集
  B Bw[.m]2進数の入出力
  O Ow[.m]8進数の入出力
  Z Zw[.m]16進数の入出力
  EN ENw.d[Ee]実数値を工学表記の形で出力
  ES ESw.d[Ee]実数値を科学表記の形で出力
 w:ゼロ以外の符号なし整定数でフィールドの幅を指定。
 m:符号なし整定数で印刷すべきけた数を指定。
 d:符号なし整定数で小数点の右側にある小数部分のけた数を指定。
 e:ゼロ以外の符号なし整定数で指数フィールドのけた数を指定。

[制御編集記述子]
編集記述子 形式 説明
 斜線  現在レコードのデータ転送を終了する
 コロン  入出力リスト中にそれ以上の項目がなければ 形式制御を
終了する
  P kP 位取り因数
 k:整定数でけた数を指定。

[位置付け編集記述子]
編集記述子 形式 説明
  T Tn データ転送を現在位置から開始する
  TL TLn データ転送を現在位置からnけただけ 左側の位置から
開始する。
  TR TRn データ転送を現在位置からnけただけ 右側の位置から
開始する
  X nX 入力の場合はフィールドが スキップされ出力の場合は
ブランクで埋められる
 n:ゼロ以外の符号なし整定数で、レコード中の文字位置を指定。

[符号制御編集記述子]
編集記述子 形式 説明
  S S 任意選択の正符号の表示を復元する
  SP SP 出力データに正符号が付けられる
  SS SS 出力データに正符号が付けられない

[空白解釈編集記述子]
編集記述子 形式 説明
  BN BN 入力データ中のブランクが無視される
  BZ BZ 入力データ中のブランクはゼロとして 扱われる

[文字列編集記述子]
編集記述子 形式 説明
'文字定数' 文字定数表現

green dotI形編集記述子[Iw,Iw.m]

 I(integer)形は、整数型の編集に用いる。wは全けた数を指定する。
[出力]Iw.mは、先頭の0の制御を行いる。少なくともmけたになるように、 先頭に0を付ける。
出力欄が少なすぎて数値が収まらない場合は、*で埋められる。

[例]
入力データ 形式 入力された値
△123 I4 123
△-12 I4 -12

出力データ 形式 出力された値
 123 I4 △123
 -12 I4 △-12
 123 I2  **
 123 I5.4 △0123
(注)△は、1つの空白を表す

green dotF形,E形,D形編集記述子[Fw.d,Ew.d,Ew.dEe,Dw.d]

F(floating-point)形,E(exponent)形は、実数型の編集に用いる。wは 全けた数を指定し、そのうち小数部がdけたになり、指数部の整数が eけたになる。
[入力]どの形式でも同じ働きをするが入力データ中に小数点が含まれ る場合は、こちらが優先する。
[出力]Fw.dは小数点以下dけたで出力される。Ew.d,Dw.dおよびEw.dEe は、指数部を付けて出力され、仮数部の小数点以下がdけたとなる。
 Ew.dEeのeは指数部のけた数となる。

[例]
入力データ    形式    入力された値
△123 F4.1 12.3
△-123 F5.2 -1.23

出力データ    形式    出力された値
12.34 F5.1 △12.3
12.34 E10.3 △0.123E+02
12.34 E11.3E3 △0.123E+002

green dotG形編集記述子[Gw.d,Gw.dEe]

G(general)形は、どの組込みデータ型に対しても使用できる。wは全けた数を 指定し、そのうち小数部がdけたになり、指数部の整数がeけたになる。
実数型,複素数型に対しては、E形編集記述子と同じ効果をもつ。 整数型,論理型,文字型に大しては、それぞれ、Iw形,Lw形,Aw形の編集記述子と 同じになる。
[入力]Fw.dと同じ働きをする。
[出力]出力される値の絶対値によって異なる。

[例]
出力データ 形式 出力された値 同値の指定
0.012 G10.3 △0.120E-01 E10.3と同じ
1.23 G10.3 △△1.23 F6.2と同じ

green dotL形編集記述子[Lw]

L(logical)形は、論理型の編集に用いる。wは全けた数を指定する。
[入力]Tまたは、F(または、t,f)を入力する。または、 L7で指定した場合、.TRUE.,.FALSE.を入力することもできる。
[出力]Tまたは、Fが出力される。

[例]
入力データ 形式 入力された値
△△T L6
.FALSE. L8

出力データ 形式 出力された値
L2 △T
L3 △△F

green dotA形編集記述子[A,Aw]

A(alphanumeric)形文字型の編集に用いる。wは全けた数を指定する。
wを指定しないと、入出力項目の長さと同じ文字数が仮定される。
[入力]入力けた数が短い場合は、左からとられる。
[出力]出力けた数が短い場合は、左からとられる。長い場合は、右に よせて出力する。

[例]
入力データ 形式 変数の文字長 入力された値
ABCDEFG A3 3 ABC
ABCDEFG A5 5 ABCDE
ABCDEFG A 7 ABCDEFG
ABCDEFG A7 3 EFG

入出力データ 形式 変数の文字長 出力された値
ABCDEFG A8 8 △ABCDEFG
ABCDEFG A3 3 ABC
ABCDEFG A5 5 ABCDE
ABCDEFG A 7 ABCDEFG

green dotB形,O形,Z形編集記述子[Bw,Bw.m,Ow,Ow.mZw,Zw.m]

整数値を2進数,8進数,16進数に変換する。wは全けた数を指定し、 少なくともmけたになるように、先頭に0を付ける。
[例]
入力データ 形式 入力された値
△1AB Z4 427
127 O3 87

出力データ 形式 出力された値
123 Z3 △7B
12 B5 △1100
123 O4 △173

green dotEN形編集記述子[ENw,ENw.dEe]

EN(engineering)形は、工学表記の記述子でE形とほぼ同じである。 wは全けた数を指定し、そのうち小数部がdけたになり、指数部の整数が eけたになる。
[出力]10進指数が3の倍数になり、0以外は有効数字部の絶対値が 1以上1000未満となる。

出力データ 形式 出力された値
123456789.0 EN11.3 123.457E+06

green dotES形編集記述子[ESw,ESw.dEe]

ES(scientific)形は、科学表記の記述子でE形とほぼ同じである。wは 全けた数を指定し、そのうち小数部がdけたになり、指数部の整数がeけたになる。 [出力]0以外は有効数字部の絶対値が1以上10未満となる。

出力データ 形式 出力された値
123456789.0 ES10.3 △1.235E+08

green dot/編集記述子

斜線は、1レコードの終りを示す。次の行にする場合に、/を指定する。 3個斜線(///)を指定すると2行空白行がとられる。///は、3/と反復数を 使っても記述できる。斜線の前後のコンマは省略できるが反復数を 指定した場合は、省略できない。
[例]
i=10; j=20
WRITE(*,'(I4,/,I6,//," ABC")') i,j

出力

green dot:編集記述子

コロンは入出力リスト中にそれ以上項目が残ってない場合、 書式制御を終了させる。
[例]
i
i=10; j=20
WRITE(*,'(" I=",I2," J=",I2)') i,j
WRITE(*,'(" I=",I2," J=",I2)') i
WRITE(*,'(" I=",I2,:," J=",I2)') i
出力

green dotP形編集記述子[kP]

けた移動数を指定するときに用いる。けた移動数は各入出力文の開始時点では 0である。kPでけた移動を変更するとそれ以降の数値がけた移動される。
[出力]出力ではEw.dおよびEw.dEeに対して、仮数部に10kが掛けられ 指数はkだけ減る。
出力データ 形式 出力された値
123.4 1P,F6.1 1234.0
123.4 -2P,F5.3 1.234

[例]
x=12.3; y=456.7
WRITE(*,'(2P,F10.2,F10.2)') x,y
出力

green dotT形,TL形,TR形編集記述子[Tn,TLn,TRn]

Tnはレコードの先頭からn文字目に位置付ける。TLnは現在の位置から 左へn文字分ずらす。TRnは現在の位置から右へn文字分ずらす。
[例]
i=10; j=20
WRITE(*,'(T3,I2,T9,I2)') i,j
出力

green dotX形編集記述子[nX]

現在の文字位置からn文字右にずらす。
[入力]nけた読みとばすことができる。
[出力]nけたの空白が出力される。
[例]
i=10; j=20
WRITE(*,'(2X,I2,4X,I2)') i,j
出力

green dotS形,SP形,SS形編集記述子

数値の出力で正符号+を付けるか付けないかの指定に用いる。SPを指定すると それ以降の数値に正符号が付く。SSを指定するとそれ以降の数値に 正符号が付かない。Sを指定するとコンパイラの定めた形に戻る。
[例]
i=10; j=20
WRITE(*,'(2X,SP,I3,4X,SS,I2)') i,j
出力

green dotBN形,BZ形編集記述子

BNを指定すると、それ以降の数値の入力は、データ中の空白がすべて無視される。 BZを指定すると、データ中の空白は、すべて0(ゼロ)として解釈される。
[例]
READ(*,'(BN,F7.2,F7.2)') x,y
WRITE(*,'(1X,F5.2,F5.2)') x,y
入力
出力

green dot文字列編集記述子

文字列の出力に用いる。
[例]
WRITE(*,'("ABCDEFGH ",A)') '*xyz*'
出力
line-end