+-------------------------Fortran 2003 ドラフト標準--------------------------+

FLUSH

目的

FLUSH ステートメントを使用すると、他のプロセスで使用可能な外部ファイルからデータを作成できます。 また、FLUSH ステートメントを使用して、Fortran 以外の方法で外部ファイルに書き込まれた データを、READ ステートメントで使用できるようにすることが可能です。

構文



>>-FLUSH--+-u----------+---------------------------------------><
          '-flush_list-'
 
 

u
0 から 2,147,483,647 までの範囲の値を持つ整数スカラー式です。 この装置は外部ファイルを参照します。 この値は、アスタリスクまたはホレリス定数であってはなりません。

flush_list
UNIT= を含んでいなければならず、以下の指定子を 1 つずつ含むことができる、指定子のリストです。

ERR または IOSTAT を指定しないと、プログラムは重大エラーの発生時に終了します。

規則

FLUSH ステートメントを pure サブプログラムで使用することはできません。

FLUSH ステートメントは、ファイル位置では効果がありません。

バッファリング実行時オプションは、FLUSH ステートメントの実行には影響しません。

例 1: 次の例では、Fortran プログラムによって書き込まれたデータ・ファイルを C ルーチンで読み取ります。 このプログラムは、バッファーに入れられた I/O のための FLUSH ステートメントを指定しています。

! The following Fortran program writes data to an external file.
subroutine process_data()
  integer data(10)
  external read_data
 
  data = (/(i,i=1,10)/)
  open(50, file="data_file")
  write(50, *) data             ! write data to an external file
  flush(50)                     ! since Fortran I/O is buffered, a FLUSH
                                ! statement is needed for the C routine to
                                ! to read the data
  call read_data(10)            ! call C routine to read the file
end subroutine
 
/* The following C routine reads data from the external file. */
void read_data(int *sz) {
 
#include < stdio.h>
#include < stdlib.h>
int *data, i;
  FILE  *fp;
 
  data = (int *) malloc((*sz)*sizeof(int));
  fp = fopen("data_file", "r");
  for (i=0; i<*sz-1; i++) {
    fscanf(fp, "%d", &dat5[i]);
  }
}
 

+----------------------End of Fortran 2003 ドラフト標準----------------------+

IBM Copyright 2003