我使用Fortran迭代求解方程组,但不想在每次迭代之后知道结果。我的实际系统要大得多,解决方案需要大约100,000次迭代,但请考虑这个执行100次迭代的简单示例。
PROGRAM ITER
DATA X1,X2,X3/.0,.0,.0/
DO 20 K = 1,100
X1 = 10+3*X2 - X3
X2 = (4 - 2*X1 - X3)/5.
X3 = (-13 + X1 - X2)/(-2.)
WRITE (*,10)K,X1,X2,X3
10 FORMAT (' ',I3,3(F8.1))
20 CONTINUE
END PROGRAM ITER尽管如此,程序在每次迭代后都会报告结果,但是,我希望在每10次迭代后报告一次X1、X2和X3的值。
我尝试在DO循环中添加一个嵌套的IF语句,但是我从编译器那里得到了一个错误。我想知道,当K(迭代步骤)为10的倍数时,是否可以打印X1、X2和X3的值。因此,是否可以将K除以10,然后当结果是整数时,输出X1、X2和X3的值?
我希望这是明确的。谢谢你的帮助。
发布于 2014-04-26 19:58:33
if (mod(k,10)==0) WRITE...只需在mod函数可被10整除时,使用if条件中的k (余数或模)来执行写。
https://stackoverflow.com/questions/23315785
复制相似问题