Компиляция задач с openmpi после обновления v 1.10

Я использовал openmpi для разработки приложений параллели fortran90 некоторое время. Я обычно устанавливаю версию по умолчанию openmpi для разработчиков из репозиториев, и это работает из поля. Я сделал так, и это работало, когда я во-первых установил Ubuntu16.04 на своей локальной машине.

Однако я думаю, что openmpi был обновлен, и мои программы не будут больше компилировать. Я примерил другие машины, которые используют более старые версии (libopenmpi-dev 1.6), и он работает. Кажется, что компилятор не распознает основные подпрограммы, такие как MPI_RECV (..).

Например, этому маленькому кусочку кода не удается скомпилировать в моей локальной машине, но это не имеет никакой проблемы на другом с openmpi1.6.

program main
   use mpi
   implicit none
   integer :: ierr,np,myid,i,rbuf
   integer, dimension(:,:), allocatable :: ista

   CALL MPI_INIT(ierr)

   CALL MPI_COMM_RANK(MPI_COMM_WORLD,myid,ierr) 

   CALL MPI_COMM_SIZE(MPI_COMM_WORLD,np,ierr) 


   allocate(ista(MPI_STATUS_SIZE,np))


   if (myid==0) then
         do i = 1, np-1
            CALL MPI_RECV(rbuf,1,MPI_INTEGER4,i,i,MPI_COMM_WORLD,ista,ierr)
            write(*,"('process ',i2,' sent:',i2)") i,rbuf
         end do
   else
         i=10*myid
         CALL MPI_SEND(i,1,MPI_INTEGER4,0,myid,MPI_COMM_WORLD,ierr)
   end if

   CALL MPI_FINALIZE(ierr)


end program main

При компиляции этого использования mpif90 дает мне следующую ошибку:

 main.f90:19:75:

             CALL MPI_RECV(rbuf,1,MPI_INTEGER4,i,i,MPI_COMM_WORLD,ista,ierr)
                                                                           1
Error: There is no specific subroutine for the generic ‘mpi_recv’ at (1)

Кто-либо знает, каково это могло быть?

Заранее большое спасибо

1
задан 11 December 2016 в 21:41

0 ответов

Другие вопросы по тегам:

Похожие вопросы: