换行 Linux Fortran 输出与 windows 不兼容

Newline Linux Fortran output incompatible with windows

我有一个最初在 Windows 上编译的 Fortran 程序,它获取纯文本输入文件并生成纯文本输出文件写入写入命令:


  do fig=180,0,-1
    write(jfil,'(i3.3,2x,f7.5,1x,f7.4,1x,2(1x,f9.4,1x,a3),2(2x,i3),2(1x,f9.4,1x,a3))') &
    fig,xc(fig),cc(fig),(Pcav(je),fcav(je),je=1,2),agav,agad,(Pcad(je),fcad(je),je=1,2)
  enddo

我需要在 Linux 上编译并 运行 它,但是当我在 windows 上阅读输出文件时,我遇到了端行字符兼容性问题。 这是我在 windows

上的记事本程序中所期望的
177  0.99947  0.2519     9.5946 com   36.4488 exp    3  357    9.5882 asp   36.6517 sca
176  0.99905  0.3358     9.5988 com   36.2943 exp    4  356    9.5874 asp   36.6534 sca
175  0.99851  0.4197     9.6043 com   36.0974 exp    5  355    9.5865 asp   36.6557 sca
174  0.99786  0.5036     9.6110 com   35.8594 exp    6  354    9.5853 asp   36.6585 sca


这就是我得到的

177  0.99947  0.2519     9.5946 com   36.4488 exp    3  357    9.5882 asp   36.6517 sca 176  0.99905  0.3358     9.5988 com   36.2943 exp    4  356    9.5874 asp   36.6534 sca 175  0.99851  0.4197     9.6043 com   36.0974 exp    5  355    9.5865 asp   36.6557 sca 174  0.99786  0.5036     9.6110 com   35.8594 exp    6  354    9.5853 asp   36.6585 sca



它是相同的输出但没有换行符,全部在一行输出中 这是众所周知的 Linux 和 Windows 之间的兼容性问题: linux使用“\n”和windows使用“\r\n”写新行

是否有 Gfortran 标志来修改输出以与 Windows 兼容? 还有其他方法可以解决这个问题吗?

Gfortran 和 Windows 上的其他几个 languages/runtimes 应该可以很好地读取您的文件,即使使用 Unix 行终止也是如此。您必须向我们提供您在 VBA 或其他地方阅读时实际遇到的错误的详细信息,否则我们无法告诉您如何避免它。

还有其他方法可以解决这个问题吗?

是的,您可以 运行 著名的 unix2dos 实用程序将数据文件转换为 DOS/Windows 格式。或者链接网页中提到的一些替代实用程序。