Как мне получить доступ к началу массива fortran с конца do l oop над массивом? - PullRequest
0 голосов
/ 27 апреля 2020

В моем do l oop мне нужен доступ к i + 1-му элементу массива. Для последнего элемента это должно быть первое значение в массиве.

Так что циклически перебирая массив / 1,2,3 / я бы хотел получить результат 2,3,1,2,3, ...

Я написал немного неуклюжий способ сделать это, используя переменную для индекса и MOD, мне было интересно, есть ли лучшее решение? Я также не хочу замедлять остальную часть кода (например, если я делаю эту операцию сотни тысяч раз).

program array_test
    implicit none

    real, dimension(3) :: arr
    integer :: i, idx
    data arr /1.0,2.0,3.0/

    do i=1,size(arr)+2
        idx = mod(i,size(arr))
        write(*,*) "Index i+1", idx+1, arr(idx+1)
    enddo
end program

, которая выдает

 Index i+1           2   2.00000000
 Index i+1           3   3.00000000
 Index i+1           1   1.00000000
 Index i+1           2   2.00000000
 Index i+1           3   3.00000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...