如何在Fortran中迭代数组?

7

非常简单的问题。

假设我有

real, dimension(0:100) :: realResults

我希望你能遍历realResults,最终创建形式为数组的json。
[[x1,y1], [x2,y2], [x3, y3], ... ]

我相信我想使用“do”,但我不确定如何使用

谢谢

2个回答

8
在Fortran 90中,您可以像这样进行数组迭代:
do i = lbound(realResults), ubound(realResults)
  ! do something with realResults(i)
end do

从那时起,自20世纪80年代以来,大多数Fortran77编译器都支持这种形式。 - dmckee --- ex-moderator kitten
Fortran 90 的一部分是数组支持的 lbound 和 ubound。更酷的是,如果你能理解一些“整个数组”的功能,你可以像传奇的 APL 一样做一行代码。 - jaredor
Fortran 90(我想,也许是95)还添加了ForAll结构。因此,您可以执行以下操作:对于所有(i = 1:10),a(i)= b(i)+1 - Brad Campbell
3
使用do i = lbound(columns_to_test, 1), ubound(columns_to_test, 1),否则会出现“Error: Start expression in DO loop at (1) must be a scalar”的错误。 - Alleo

2

FORTRAN和json在同一个段落中?!?! 真是岂有此理?也许可以这样表达:

      do 10 i = 0, 100
C        do something with realResults(i)
  10  continue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接