並び順番 READ 文は,対応する I/O 並び項目のデータ型を使ってデータの形式を決定することにより,データを文字列から 2 進形式に変換します。その後,変換されたデータは,I/O 並び中の要素に,それらの要素が現れる順に (左から右に) 代入されます。
実行中に斜線 (/) が現れると,READ 文は終了し,残りの入力並び項目は変更されないままになります。
ファイルが書式なし I/O のために接続されている場合,並びデータ転送は禁止されます。
並び外部記録は,一連の値と値区切り子から構成されています。値としては以下のものが使用できます。
個々の定数は,整数型,実数型,複素数型,論理型,または文字型の定数表現であるか,区切り文字のない文字列でなくてはなりません。2 進,8 進,16 進,ホレリス,および名前付き定数は使用できません。
一般に,定数の形式は並び項目の型に対して有効なものでなくてはなりません。定数のデータ型は,値のデータ型と外部形式から内部形式への変換を決定します。また,以下の規則も適用されます。
数値並び項目は数値定数にしか対応できず,文字並び項目は文字定数にしか対応できません。数値並び要素とその対応する数値定数のデータ型が一致しなければ,算術代入の規則に従って変換が行われます (「数値代入文」の「数値代入文の変換規則」を参照。)
複素数定数は,実数または整数の定数の組をコンマで区切り,括弧で囲んだ形式を持ちます。左括弧と最初の定数,区切りのコンマの前後,および第 2 定数と右括弧の間には空白を置くことができます。
論理定数は,真の値 (.TRUE.,または T,.T,t,.t で始まる任意の値) か偽の値 (.FALSE.,または F,.F,f,.f で始まる任意の値) を表します。
文字は,対応する I/O 並び項目が基本文字型で以下の条件を満たしている場合,区切り文字であるアポストロフィや引用符は必要としません。
文字列は空白,コンマ (,),または斜線 (/)を含んでいない。
文字列は記録境界をまたいでいない。
文字列中の最初の空白以外の文字がアポストロフィまたは引用符でない。
先頭の文字列は,数字の列に星印を続けたものではない。
区切り文字を含んでいない文字列は,最初の空白,コンマ,斜線,または記録終了に遭遇した時点で終了します。区切り文字を含んでいない文字列中のアポストロフィと引用符は,そのままの形で転送されます。
ヌル値は,2 つの連続した値区切り子 (,, など),または空白以外の初期値区切り子によって指定されます (記録終了の前にある値区切り子は,ヌル値を表しません)。
ヌル値は,対応する並び要素が変更されないまま残されることを示します。ヌル値は複素数定数全体を表すことができますが,複素数定数の実部または虚部だけのために使用することはできません。
ヌル値の繰り返し (r*),または定数の繰り返し (r*constant)。r は,種別パラメタを持たず,空白が埋め込まれていない符号なしのゼロでない整定数表現です。
値区切り子は,任意の数の空白,または任意の数の空白の前後に付けられた 1 つのコンマあるいは斜線です。このような値区切り子が文字定数中に現れた場合,値区切り子ではなく定数の一部と見なされます。
記録終了は空白文字と等価です (文字定数中にある場合を除く)。文字定数中に記録終了がある場合,その記録終了は無視され,文字定数は次の記録に継続されます (前の記録の最後の文字の直後に,次の記録の最初の文字が続けられます)。
記録の先頭にある空白は,前の記録から継続された文字定数の一部である場合を除いて無視されます。記録の先頭にある空白が前の記録から継続された文字定数の一部である場合,記録の先頭の空白は定数の一部と見なされます。
例
以下の文が指定されているとします。
CHARACTER*14 C DOUBLE PRECISION T COMPLEX D,E LOGICAL L,M READ (1,*) I,R,D,E,L,M,J,K,S,T,C,A,B
また,次の外部記録が読み取られるものとします。
4 6.3 (3.4,4.2), (3, 2 ) , T,F,,3*14.6 ,'ABC,DEF/GHI''JK'/
I/O 並び項目には以下の値が代入されます。
I/O 並び項目 | 代入される値 |
I | 4 |
R | 6.3 |
D | (3.4,4.2) |
E | (3.0,2.0) |
L | .TRUE. |
M | .FALSE. |
J | 変更されない |
K | 14 |
S | 14.6 |
T | 14.6D0 |
C | ABC,DEF/GHI' JK |
A | 変更されない |
B | 変更されない |
以下は,並び入出力を示しています。
REAL a INTEGER i COMPLEX c LOGICAL up, down DATA a /2358.2E-8/, i /91585/, c /(705.60,819.60)/ DATA up /.TRUE./, down /.FALSE./ OPEN (UNIT = 9, FILE = 'listout', STATUS = 'NEW') WRITE (9, *) a, i WRITE (9, *) c, up, down REWIND (9) READ (9, *) a, i READ (9, *) c, up, down WRITE (*, *) a, i WRITE (*, *) c, up, down END
上述の例は,以下の結果を生成します。
2.3582001E-05 91585 (705.6000,819.6000) T F
関連情報
READ 文については,「READ」を参照してください。
順番 READ 文の形式については,「順番 READ 文の形式」を参照してください。
組込みデータ型の定数表現形式については,「組込みデータ型」を参照してください。
並び出力については,「並び順番 WRITE 文の規則」を参照してください。