fortran写输出:一行中的所有变量

时间:2014-01-07 18:24:42

标签: fortran fortran90 gfortran

抱歉,

我尝试用不同的格式(1.4e-12,10 ......)写一个file.dat whit很多列(11)

当我尝试编写代码时,我使用以下fortran命令:

                 WRITE(7,*) id,t,a,e,inc,capom,omega,capm,mass,radius

但原始文件中的每一行现在都是用多行写的。

自:

  

1222221 0.0 10.0 0.0 3.1415927 0.0 0.0 3.7828348 9.0E-9 4.0E-6

为:

  

1222221 0.000000000000000E + 000 10.0000000000000     0.000000000000000E + 000 0.000000000000000E + 000 0.000000000000000E + 000     0.000000000000000E + 000 1.67102026939392 9.000000189551827E-010     3.999999989900971E-006

我该如何解决这个问题?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您需要指定所需的格式。您可以使用

执行此操作
  • i0指定一些未知宽度整数
  • f4.1指定最多2位数的实数加上1位小数(最小值为0.0,最大值为99.9)
  • f9.7指定一个最多1位数的实际小块7位小数(非常适合pi)
  • es10.1指定一个最多8位数的科学记数法,带有一个小数位(适合9e-9)
  • 1x指定每个数字之间的空格

这些可以一起使用

write(7,'(i0,1x,3(f4.1,1x),f9.7,1x,2(f4.1,1x),2(es10.1,1x))') &
                              id,t,a,e,inc,capom,omega,capm,mass,radius