【问题标题】:Printing the result after a specific iterations in Fortran在 Fortran 中特定迭代后打印结果
【发布时间】:2014-04-26 19:52:55
【问题描述】:

我正在使用 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 的值。

我尝试将嵌套的 IF 语句添加到 DO 循环中,但编译器出现错误。我想知道当 K(迭代步骤)是 10 的倍数时是否可以打印 X1、X2 和 X3 的值。因此是否可以将 K 除以 10,然后只要结果是整数,值X1,X2 和 X3 输出?

我希望这很清楚。谢谢你的帮助。

【问题讨论】:

    标签: fortran


    【解决方案1】:
    if (mod(k,10)==0) WRITE...
    

    只需在if 条件中使用mod function(余数或模数),仅当k 可被10 整除时才执行写入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 2013-05-21
      相关资源
      最近更新 更多