2016-02-16 2 views
-1

Я получаю следующее сообщение об ошибке компиляции на следующий кодFortran MPI Ошибка Статус

Код:

 IMPLICIT REAL*8(A-H,O-Z) 
     include 'common_files.inc' 
     CHARACTER*100 MNO, MESSAGE 
     integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) 

     call MPI_INIT(ierror) 
     call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror) 
     call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)  
     starttime = MPI_WTIME() 
     /* ........rest of code................. 

выход Компиляция:

main.f: 23,46:

 integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)   
               1 
Error: Variable 'mpi_status_size' cannot appear in the expression at (1) 
main.f:23.62: 

     integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)   
                   1 
Error: The module or main program array 'status' at (1) must have constant shape 

Файл 'common_files.inc' содержит файлы заголовков, такие как 'include' mpif.h ''. К сожалению, мне не разрешено оставлять оставшийся код.

Я компиляции выше, используя следующую команду

mpif90 -g main.f 

Что может быть возможные причины ошибки ?.

+0

Не начинайте новые вопросы с тем же контентом! Если вам нужен новый вопрос с подобной темой, вы должны объяснить, как отличается новый, и почему вы не просто отредактировали старый. http://stackoverflow.com/questions/35425067/fortran-mpi-init-error –

ответ

1

Вы явно есть проблема с include 'mpif.h' заявление:

См, например:

 IMPLICIT REAL*8(A-H,O-Z) 
c  include 'mpif.h' 
     integer rank, size, ierror, status(MPI_STATUS_SIZE) 

     call MPI_INIT(ierror) 
     call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror) 
     call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)  
     print *, size, " ", rank 
     call MPI_Finalize(ierr) 
     end 

дает мне:

$ mpif90 foo.f 
foo.f:4.46: 

     integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)   
               1 
Error: Variable 'mpi_status_size' cannot appear in the expression at (1) 
foo.f:4.62: 

     integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)   
                   1 
Error: The module or main program array 'status' at (1) must have constant shape 

В то время как, если я раскомментировать include 'mpif.h' линию, она просто компилирует и работает.

Вы должны дважды проверить свой файл common_files.inc.

Смежные вопросы