PROGRAM SEQIO IMPLICIT NONE INCLUDE 'mpif.h' INTEGER :: I INTEGER :: MYRANK INTEGER :: NUMPROCS INTEGER :: IERROR INTEGER :: ISTATUS INTEGER :: BUFSIZE INTEGER :: BUF(100) ! ---------------------------------------------------------------------- BUFSIZE = 100 IERROR = 0 CALL MPI_INIT(IERROR) CALL MPI_COMM_RANK(MPI_COMM_WORLD, MYRANK, IERROR) CALL MPI_COMM_SIZE(MPI_COMM_WORLD, NUMPROCS, IERROR) DO I=1,BUFSIZE BUF(I)=MYRANK * BUFSIZE + I ENDDO IF (MYRANK /= 0) THEN CALL MPI_SEND(BUF, BUFSIZE, MPI_INTEGER, 0, 99, MPI_COMM_WORLD, IERROR) ELSE OPEN(7,FILE="testfile") WRITE(7,*) BUF(1:BUFSIZE) DO I=2,NUMPROCS CALL MPI_RECV(BUF, BUFSIZE, MPI_INTEGER, (I-1), 99, MPI_COMM_WORLD, & ISTATUS, IERROR) WRITE(7,*) BUF(1:BUFSIZE) ENDDO CLOSE(7) ENDIF WRITE(6,*) 'MYRANK:',MYRANK,' BEFORE FINALIZE' CALL MPI_FINALIZE(IERROR) END PROGRAM SEQIO