我试图在Windows下的FORTRAN控制台上以二进制格式编写,但我不能这样做。我知道我可以使用Open()函数并使用Form ='Unformatted'来打开文件并以二进制格式写入。但我需要在控制台上写入而不是外部文件。
我的项目是使用管道机制在FORTRAN和C ++程序之间进行通信。通信的一部分是发送大量的双精度数字。现在我发送实际数字。如果我可以将它们作为二进制格式发送,它将加快这一过程。
有没有办法在FORTRAN的控制台上以二进制格式写?我试图通过char()函数对数字进行类型转换,但它只用于整数而不是double!
任何帮助将不胜感激
由于
答案 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或套接字或管道来做这件事?