Я пытаюсь получить переменную из нескольких обработанных как часть цикла DO.Однако значение переменной равно 0 после операции, если я использую переменную для представления номера процессора.Это работает нормально, если я введу номер процессора напрямую.Как ни странно, точно такой же код прекрасно работает ранее в программе.Любые мысли по моей проблеме?
DO s = 1,numproc-1,1
CALL MPI_RECV( numZERO, 1, MPI_INTEGER, s, 1, MPI_COMM_WORLD, status, ierr )
WRITE(*,*)'s',s,'numZERO',numZERO
END DO
дает:
s 1 numZERO 0
s 2 numZERO 0 ...
когда она закодирована:
CALL MPI_RECV( numZERO, 1, MPI_INTEGER, 1, 1, MPI_COMM_WORLD, status, ierr )
WRITE(*,*)'1 numZERO',numZERO
CALL MPI_RECV( numZERO, 1, MPI_INTEGER, 2, 1, MPI_COMM_WORLD, status, ierr )
WRITE(*,*)'2 numZERO',numZERO
Я получаю
1 numZERO 1
2 numZERO 2 ...
s
является целым числом.