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

问题描述 投票:1回答:1

我正在使用一个为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

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

loops fortran
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.