Если я получу это, вы захотите сделать следующее:
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