The simple code below fails when run (with mpiexec.exe) on a 64-bit Win. 7 workstation (with dual 6-core processors). The culprit is the WRITE(*,*) command (when a large number of such commands are issued, as in the example below). Writing to a file works well.
PROGRAM MAIN USE MPI IMPLICIT NONE INTEGER :: RANK,ERROR,I COMPLEX(KIND=8) :: A(8000) CALL MPI_INIT(ERROR) CALL MPI_COMM_RANK(MPI_COMM_WORLD,RANK,ERROR) IF (RANK==0) THEN DO I=1,8000 WRITE(*,*) I,A(I) END DO END IF CALL MPI_FINALIZE(ERROR) END PROGRAM MAIN
The errors look like this:
[mpiexec@xxx] ..\hydra\ui\utils\uiu.c (406): assert (!closed) failed [mpiexec@xxx] ..\hydra\pm\pmiserv\pmiserv_cb.c (973): error in the UI defined callback [mpiexec@xxx] ..\hydra\tools\demux\demux_select.c (103): callback returned error status [mpiexec@xxx] ..\hydra\pm\pmiserv\pmiserv_pmci.c (501): error waiting for event [mpiexec@xxx] ..\hydra\ui\mpich\mpiexec.c (1110): process manager error waiting for completion
This fails with 16 Update 3 as well as the 17 Beta. A smaller array will not lead to this error.
This doesn't sound like a Fortran issue, as I don't see any Fortran errors in the log. Whose MPI are you using? If it is trying to merge the standard output streams, it may be overwhelmed by the volume.