-Fortran- 入力の書式関数

入力の際に,出力と同様に書式を指定することができます.
ただし,書式を指定すると,その通りに入力(キーボード,もしくはファイル)の記述を行わないと正しく読み込みが行われません.
通常は,データを1つ以上のタブやスペースで区切って入力し,プログラム中では'READ(ファイル番号,*)'として並び入力により読み込みを行うことが一般的です.

書式を指定する場合には,'*'の部分に,書式付き出力の場合と同様の書式を記述します(書式を指定する場合は,連続して記述された文字や数字を指定した桁数で切り分けて読み込む場合が多い).

また,文字列を読み込む際に,書式を使うか否かによって違いが生じます.
以下のような内容の入力ファイル'data.d'があったとします.

abcde fghij
ABCDE FGHIJ

このファイルを,次のようなプログラムで読み込むとします.

PROGRAM ReadCharacter
  IMPLICIT NONE
  CHARACTER(10) char1, char2
  OPEN(10, file = 'data.d')
  READ(10, *) char1
  READ(10, '(a)') char2
  WRITE(*,*) TRIM(char1)
  WRITE(*,*) TRIM(char2)

 

END PROGRAM ReadCharacter
 
このプログラムをコンパイル,実行すると以下のようになります.

$ gfortran ReadCharacter.f90
$ ./a.out
 abcde
 ABCDE FGHI
 
出力結果からわかるように,'READ(10, *) char1'とすると,行中の空白データが区切りとみなされ,'abcde'の5文字が読み取られます.一方で,'READ(10'(a)') char2'と書式を指定すると,空白も含めた文字数分の文字が読み込まれます.