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,具体取决于实现)转换为字符。

我真的不知道您的数据流有多大,但如果您正在写入控制台,操作系统可能会坚持在 X 字符后插入 CR/LF。这可能会完全弄乱您的输入流。有没有想过使用 MPI 或套接字或管道来执行此操作?

于 2013-03-22T20:23:18.787 回答