0

使用 FORTRAN 77 是否可以在两个数组上执行交换,就像交换在 c++ 中的工作方式一样?

我有两个大数组,例如 v1 和 v2,并且想在每次迭代结束时交换 v1 和 v2,以便 v2 始终是最后一次迭代,而 v1 是工作数组。在 F77 中如何做到这一点?

4

1 回答 1

1

如果我明白了,你想做以下事情:

do while (i.LE.max_iter .AND. .NOT.converged)
  call sub_iter(v1, v2)
  call swap(v1,v2)
enddo

我认为这并不可行,因为这样做的一个好方法是使用指针在数组之间切换,这在 Fortran 77 中不可用。

您不能在每次迭代中对子例程进行两次调用吗?

do while (i.LE.max_iter .AND. .NOT.converged)
  call sub_iter(v1, v2)
  call sub_iter(v2, v1)
enddo
于 2010-11-07T16:12:35.307 回答