+-------------------------Fortran 2003 ドラフト標準--------------------------+
目的
FLUSH ステートメントを使用すると、他のプロセスで使用可能な外部ファイルからデータを作成できます。 また、FLUSH ステートメントを使用して、Fortran 以外の方法で外部ファイルに書き込まれた データを、READ ステートメントで使用できるようにすることが可能です。
構文
>>-FLUSH--+-u----------+--------------------------------------->< '-flush_list-' |
IOSTAT 指定子を含めると、エラー・メッセージは抑制されます。 プログラムに重大エラーが発生した場合は、ios の値は 200 になります。
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 ドラフト標準----------------------+