我正在使用下面的这段代码来生成一个文件,该文件的行数为i
(例如i=200
行),但是第一行和第二行是固定的,我只想创建另一个{在Fortran中,在of半径范围内使用随机抽取来提取{1}}行。每行应以m1开头,然后是范围[0,1]之间的6个随机数。
i
第一行和第二行创建完美,而循环中的其他行则没有。
答案 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
这对球体中的点或任何类似的东西不做任何事情,仅打印随机数。我希望这很清楚。