C /* C * root broadcast the array to all processes C */ PROGRAM main INCLUDE 'mpif.h' PARAMETER (SIZE = 10) INTEGER my_rank, ierr, root, i INTEGER array(SIZE) INTEGER comm INTEGER arraysize root = 0 comm = MPI_COMM_WORLD arraysize = SIZE CALL MPI_INIT(ierr) CALL MPI_COMM_RANK(comm, my_rank, ierr) IF (my_rank.EQ.0) THEN DO i = 1, SIZE array(i) = i END DO ELSE DO i = 1, SIZE array(i) = 0 END DO END IF WRITE(6, *) "Proc ", my_rank, ": (Before Broadcast)", (array(i), i=1, SIZE) CALL MPI_Bcast(array, arraysize, MPI_INTEGER, root, comm, ierr) WRITE(6, *) "Proc ", my_rank, ": (After Broadcast)", (array(i), i=1, SIZE) call MPI_FINALIZE(ierr) end