如何制作一个行数为i的文件

时间:2018-11-27 14:52:34

标签: fortran

我正在使用下面的这段代码来生成一个文件,该文件的行数为i(例如i=200行),但是第一行和第二行是固定的,我只想创建另一个{在Fortran中,在of半径范围内使用随机抽取来提取{1}}行。每行应以m1开头,然后是范围[0,1]之间的6个随机数。

i

第一行和第二行创建完美,而循环中的其他行则没有。

1 个答案:

答案 0 :(得分:1)

您没有告诉我们哪里出了问题(问题出在哪里),但我怀疑格式不正确。您只是指定(A),但是您有一个包含字符串和数字的混合输出列表。

您可以只使用一种简单的通用格式,例如(*(g0)),它将通用g0格式应用于输入列表中的所有项目。您将要在输入列表中添加一些手动空间(尽管您已经有了一些空间),以避免在行上加入两个不相关的输出项。

或者您也可以按照输入列表,为每个项目添加特定格式,例如(a,1x,f12.6,a,10(f12.6,1x),a ...,依此类推。根据需要进行调整,尤其是空格(可以使用' '描述符将其保留为a,或使用1x描述符。

您当前也一直在写相同的r。您应该生成更多的数字,并在每次循环迭代时重新生成它们

     real:: r(40) 

     do i=1,200
        call random_number(r)

        write(100,'(*(g0))') '',m1,' ',r(1:10), 
                         ' ',r(11:20),'0.0',&
                         ' ',r(21:30),&
                         ' ',r(31:40),'0.0'

      end do  

这对球体中的点或任何类似的东西不做任何事情,仅打印随机数。我希望这很清楚。