我已经看过这个Q/A Intent of this Fotran77 code,我几乎已经将下面的Fortran77样式代码转换为Python 3.x,除非我怀疑i = i + 1应该放在Python版本。正如我在相关问题的评论中所提到的,我已经完成了一致性测试,结果的偏差为2.因此,这个问题。将Fortran 77代码转换为Python
i = 0
500 continue
i = i +1
if (i .le. ni) then
if (u(i,j-1) .gt. -9999.) then
r(1,j) = u(i,j-1)
go to 600
else
missing = i
go to 500
end if
end if
600 continue
这里是我的Python版本
i = 0
while (i <= ni):
i = i+1
if (u[i,j-1] > -9999.0):
r[0,j] = u[i,j-1]
break
else:
missing = i
难道我在放在正确的位置增量计数器?
Fortran从1开始的列表,如果你想要它相当于python –
,它可能是0。最好的是调试/打印这两个程序的值。这只是一个现在微调的问题。但我的记忆是模糊的。你的fortran程序中是否存在循环? –
是的,但j指数问题可能也存在。我的问题是“你在展示的代码中是否存在循环?”因为AFAIR的一个循环是'我在1,5'中... ... python版本有一个循环,Fortran代码似乎没有循环。 –