在Windows下的FORTRAN中的控制台上编写二进制格式

时间:2013-03-22 19:06:30

标签: console binary fortran fortran90 fortran77

我试图在Windows下的FORTRAN控制台上以二进制格式编写,但我不能这样做。我知道我可以使用Open()函数并使用Form ='Unformatted'来打开文件并以二进制格式写入。但我需要在控制台上写入而不是外部文件。

我的项目是使用管道机制在FORTRAN和C ++程序之间进行通信。通信的一部分是发送大量的双精度数字。现在我发送实际数字。如果我可以将它们作为二进制格式发送,它将加快这一过程。

有没有办法在FORTRAN的控制台上以二进制格式写?我试图通过char()函数对数字进行类型转换,但它只用于整数而不是double!

任何帮助将不胜感激

由于

1 个答案:

答案 0 :(得分: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或套接字或管道来做这件事?