dear All, sorry for your time. I have found the solution: icount=1 DO iCPU=0,MPI%nCPU-1 IF(iCPU.NE.MPI%rank)THEN iTag=iCPU CALL MPI_ISEND(Ndata2send(iCPU),1,MPI_INTEGER,iCPU,iTag,MPI_COMM_WORLD,send_request(icount),MPI%iErr) icount=icount+1 ENDIF ENDDO
icount=1 DO iCPU=0,MPI%nCPU-1 IF(iCPU.NE.MPI%rank)THEN iTag=iCPU CALL MPI_IRECV(Ndata2recv(iCPU),1,MPI_INTEGER,iCPU,*MPI%rank* ,MPI_COMM_WORLD,recv_request(icount),MPI%iErr) icount=icount+1 ENDIF ENDDO * CALL MPI_WAITALL(3,send_request,send_status_list,MPI%iErr)* * CALL MPI_WAITALL(3,recv_request,recv_status_list,MPI%iErr)* hoping this could help others thanks for your time