      PROGRAM single_column
*     一列にデータを格納する
*     file$ は文字列変数の例
      IMPLICIT NONE
      REAL*8 i, x, y
      INTEGER IO1_, IO2_
      CHARACTER*80 file
      DATA IO1_/11/
      DATA IO2_/12/
      WRITE(*,'(A,$)') 'name of file for data? '
      READ(*,'(A)') file
*     チャンネル番号 #1 はファイルと関係付けられて
*     サブルーチンに受け渡すことができる
*     OPEN文ではさまざまなオプションの指定が可能
*     access output: 書き込みのみ
*     create newold: ファイルがあればオープンし，なければ新たに作る
      OPEN(IO1_, file = file)
*     True BASIC はテキストファイル中のデータを上書きしない
*     ERASE #1                        ! ファイルの内容の消去
*     RESET #1: end   ! ファイルへの追加書きを許可
      DO i = 1, 4
         x = i*i
         WRITE(IO1_,*) x                    ! データの列を出力
      END DO
      CLOSE(IO1_)
*     同時に１つのファイルしかオープンしない場合には
*     チャンネル番号は重要でない
      OPEN(IO2_, file = file)
      DO i = 1, 4
         READ(IO2_,*) y                     ! データの列の入力
         WRITE(*,*) y
      END DO
*     プログラム終了時にファイルは自動的にクローズされる
      CLOSE(IO2_)
      END
