Fortran Coder

查看: 523|回复: 2
打印 上一主题 下一主题

[数值问题] 输出数据全部为零

[复制链接]

5

帖子

2

主题

0

精华

新人

F 币
27 元
贡献
12 点
跳转到指定楼层
楼主
发表于 2023-12-6 21:51:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
佬们,代码中在do k 循环中vsum和usum能够输出数据,但是在循环外输出数据全部为零时为什么,全部代码在附件中,不知道是不是这一部分的原因?
感谢各位的解答
[Fortran] 纯文本查看 复制代码
subroutine rhouv(f,rho,u,v,cx,cy,n,m)
real f(0:8,0:n,0:m),rho(0:n,0:m),u(0:n,0:m),v(0:n,0:m),cx(0:8),cy(0:8)
integer :: i, j, k
real :: ssum, usum, vsum
    do j=0,m
        do i=0,n
            ssum = 0.0
            usum = 0.0
            vsum = 0.0
            do k=0,8
                ssum = ssum + f(k,i,j)
                usum = usum + f(k,i,j)*cx(k)
                vsum = vsum + f(k,i,j)*cy(k)
            !print*,vsum,usum      ! 可以输出数据
            end do
            !print*,ssum,usum,vsum ! 输出数据全部为零
            rho(i,j) = ssum
            if (ssum > 0.0) then
                u(i,j) = usum / ssum
                v(i,j) = vsum / ssum
            else
                u(i,j) = 0.0
                v(i,j) = 0.0
            end if
            !print*,u(i,j),v(i,j)
        end do
    end do





1.txt

11.41 KB, 下载次数: 3

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2023-12-7 08:39:58 | 只看该作者
我没太看懂你说的输出为0,可以输出的数据是那个或哪些变量。

数值不正确的问题,学会单步debug调试,会对你有很大的好处,其他人由于不了解你的算法过程,很难帮助你。

debug调试的教程:
https://debug.w.fcode.cn/
http://v.fcode.cn/video-debugger.html

5

帖子

2

主题

0

精华

新人

F 币
27 元
贡献
12 点
板凳
 楼主| 发表于 2023-12-10 20:10:17 | 只看该作者
fcode 发表于 2023-12-7 08:39
我没太看懂你说的输出为0,可以输出的数据是那个或哪些变量。

数值不正确的问题,学会单步debug调试,会对 ...

谢谢您的回答,我会尝试进行学习debug调试,再次感谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 01:11

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表