You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran 95中如何对循环生成的数组形式计算结果求和

解决方案:循环内累加求和,无需输出单个FV值

你完全可以通过在循环内累加求和的方式实现需求,不需要输出每一个FV值。下面是针对你原代码的具体修改:

修改后的代码

!.......vapor fraction..............
Real :: total_fv  ! 声明存储总和的实型变量
total_fv = 0.0    ! 初始化总和为0(Fortran局部变量默认未初始化,必须手动赋值)

do i=1,6
    FV = Z(I)*(K(i)-1)/(VOLD*(K(i)-1)+1)
    total_fv = total_fv + FV  ! 将当前计算的FV累加到总和中
    ! 移除原有的write语句,不再输出单个FV值
END DO

! 后续可以直接使用total_fv,它就是6次循环中所有FV的总和

核心思路说明

这个方法和你看到的示例代码里的FNV累加逻辑完全一致:

  1. 先定义一个专门的变量(比如total_fv)用来存储所有FV的总和,一定要先初始化(Fortran中未初始化的变量会包含随机值,直接累加会得到错误结果)
  2. 每次循环计算出单个FV后,立刻把它加到总和变量里
  3. 删除原代码中的write(*,99001)FV语句,避免输出单个迭代结果

这样循环结束后,total_fv就直接存储了所有FV的总和,完全不需要输出中间结果。

内容的提问来源于stack exchange,提问作者priest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:05:24