输出数据全部为零
佬们,代码中在do k 循环中vsum和usum能够输出数据,但是在循环外输出数据全部为零时为什么,全部代码在附件中,不知道是不是这一部分的原因?感谢各位的解答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
我没太看懂你说的输出为0,可以输出的数据是那个或哪些变量。
数值不正确的问题,学会单步debug调试,会对你有很大的好处,其他人由于不了解你的算法过程,很难帮助你。
debug调试的教程:
https://debug.w.fcode.cn/
http://v.fcode.cn/video-debugger.html fcode 发表于 2023-12-7 08:39
我没太看懂你说的输出为0,可以输出的数据是那个或哪些变量。
数值不正确的问题,学会单步debug调试,会对 ...
谢谢您的回答,我会尝试进行学习debug调试,再次感谢
页:
[1]