0
使用FORTRAN 77可以在兩個數組上執行交換,與交換在C++中的工作方式相同?FORTRAN 77 - SWAP
我有兩個大陣列,例如v1和v2,並且想要在每次迭代結束時交換v1和v2,使得v2總是最後一次迭代,v1是工作陣列。 F77如何做到這一點?
使用FORTRAN 77可以在兩個數組上執行交換,與交換在C++中的工作方式相同?FORTRAN 77 - SWAP
我有兩個大陣列,例如v1和v2,並且想要在每次迭代結束時交換v1和v2,使得v2總是最後一次迭代,v1是工作陣列。 F77如何做到這一點?
如果我得到它,你想要做以下樣的事情:
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
該應用程序稍有不同,但具有相同的問題/解決方案,你描述(指針)。我最終做了類似mod(iteration_count)的事情來確定當前迭代使用哪個索引,以避免必須移動數據。 – ccook 2010-11-07 17:47:44