program hello include "mpif.h" integer rank, size, ierr character*30 message character*30, allocatable, dimension(:) :: allmessages integer, parameter :: root = 0 call MPI_Init(ierr ) ! You should call MPI_Comm_size( MPI_COMM_WORLD, size, ierr ) ! always check call MPI_Comm_rank( MPI_COMM_WORLD, rank, ierr ) ! the ierr value!! write(message, '("The message from proc ",i2.2)') rank if (rank == root) allocate( allmessages(size) ) call MPI_Gather(message, 30, MPI_CHARACTER, & allmessages, 30, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr) if (rank == root) then do i = 1,size write(*, '("Proc ",i2.2,": ",a30)') i-1, allmessages(i) enddo endif call MPI_Finalize(ierr) stop end program hello