PROGRAM TALK_0_TO_1 INCLUDE 'mpif.h' INTEGER IRANK,IPROC,ITAG,ISEND,IRECV,IERR,IM,ID, & ISTAT(MPI_STATUS_SIZE),IFINISH CHARACTER*40 HELLO CHARACTER*40 HELLO_rec C CALL MPI_INIT (IERR) CALL MPI_COMM_RANK (MPI_COMM_WORLD,IRANK,IERR) CALL MPI_COMM_SIZE (MPI_COMM_WORLD,IPROC,IERR) PRINT*, IRANK, ' of ',IPROC,' alive and kicking' ITAG = 730 ID = 40 ISEND = 0 CALL MPI_BARRIER (MPI_COMM_WORLD,IERR) IF (IRANK.EQ.ISEND) THEN HELLO = 'I am process 0' IM = 40 do IRECV=1,IPROC-1 CALL MPI_SEND (HELLO,IM,MPI_CHARACTER,IRECV, & ITAG,MPI_COMM_WORLD,IERR) PRINT*, 'I, process',IRANK,' sent a message to',IRECV end do ELSE CALL MPI_RECV (HELLO_rec,ID,MPI_CHARACTER,ISEND, & ITAG,MPI_COMM_WORLD,ISTAT,IERR) PRINT*, 'I, process',IRANK,', got a message: ', HELLO_rec END IF CALL MPI_FINALIZE(IFINISH) STOP END