0

Windows で FORTRAN のコンソールにバイナリ形式で書き込もうとしていますが、できません。Open() 関数を使用し、 Form='Unformatted' を使用してファイルを開き、バイナリ形式で書き込むことができることを知っています。しかし、外部ファイルではなくコンソールに書き込む必要があります。

私のプロジェクトは、FORTRAN と C++ プログラム間の通信にパイプ メカニズムを使用することです。通信の一部は、大量の倍精度数を送信することです。現在、実際の数値を送信しています。それらをバイナリ形式で送信できれば、プロセスが高速化されます。

FORTRANでコンソール上にバイナリ形式で書き込む方法はありますか? char() 関数で数値を型キャストしようとしましたが、倍精度ではなく整数のみです!

どんな助けでも大歓迎です

ありがとう

4

1 に答える 1

0

F77の場合は、次のようにしてみてください

      program writer
      double precision x
      character(len=8) xalt
      equivalence(x,xalt)
      x = 10.0
      do i = 1, 10, 1
         x = -10.0 * x
         write(*,'(A)', advance='no') xalt
      end do
      stop
      end

同等性なしでF90に使用する場合は、伝達関数を使用して倍精度(または実装によっては実数*8または実数*2)から文字に伝達する必要があります。

データストリームの大きさはよくわかりませんが、コンソールに書き込んでいる場合、OSはX文字の後にCR/LFを挿入するように要求する可能性があります。それはあなたの入力ストリームを完全に台無しにする可能性があります。MPIまたはソケットまたはパイプを使用してこれを行うことを考えたことはありますか?

于 2013-03-22T20:23:18.787 に答える