循环使用变量,使用特定步长更改每个循环计算

时间:2018-02-26 09:40:47

标签: loops fortran

我正在使用一个向step添加值(dist)的循环。将step添加到dist后,我想在以下计算中使用它,它提供值c。然后,distc都应该在输出文件中彼此相邻的两列中列出。

如果我使用下面的代码,它至少可以在输出文件中列出dist的值。

dist=0
  do while (dist < rim)
   dist=dist+step
   c=0.5*(cl-cr)*erfc((dist)/(2*sqrt(t*d)))+cr
   write(1,'(1f20.0)')dist*1E+06
  enddo

如果我用下面的命令替换write命令,它将不会列出两个不错的列,但不知何故混合两者。

  write(1,'(1f20.0,1f15.5)')dist*1E+06,c

这是一个与循环中写入命令的定位有关的问题,还是与告知写入值的格式有关?

1 个答案:

答案 0 :(得分:1)

您应该在它们之间添加一个空格并重新检查:

write(*,'(F20.0,1X,F15.5)') dist*1E+06, c

还要考虑将结果写入文件的准确性。