Dear Jeff, Dear all,
the code is very long, here something. I hope that this could help.

What do you think?

SUBROUTINE MATOPQN
USE VARS_COMMON,ONLY:COMM_CART,send_messageR,recv_messageL,nMsg
USE MPI
INTEGER :: send_request(nMsg), recv_request(nMsg)
INTEGER ::
send_status_list(MPI_STATUS_SIZE,nMsg),recv_status_list(MPI_STATUS_SIZE,nMsg)

 !send message to right CPU
    IF(MPIdata%rank.NE.MPIdata%nCPU-1)THEN
        MsgLength = MPIdata%jmaxN
        DO icount=1,MPIdata%jmaxN
            iNode = MPIdata%nodeList2right(icount)
            send_messageR(icount) = RIS_2(iNode)
        ENDDO

        CALL MPI_ISEND(send_messageR, MsgLength, MPI_DOUBLE_COMPLEX,
MPIdata%rank+1, MPIdata%rank+1, MPI_COMM_WORLD,
send_request(MPIdata%rank+1), MPIdata%iErr)

    ENDIF
    !


    !recive message FROM left CPU
    IF(MPIdata%rank.NE.0)THEN
        MsgLength = MPIdata%jmaxN

        CALL MPI_IRECV(recv_messageL, MsgLength, MPI_DOUBLE_COMPLEX,
MPIdata%rank-1, MPIdata%rank, MPI_COMM_WORLD, recv_request(MPIdata%rank),
MPIdata%iErr)

        write(*,*) MPIdata%rank-1
    ENDIF
    !
    !
    CALL MPI_WAITALL(nMsg,send_request,send_status_list,MPIdata%iErr)
    CALL MPI_WAITALL(nMsg,recv_request,recv_status_list,MPIdata%iErr)

Diego


On 29 September 2015 at 00:15, Jeff Squyres (jsquyres) <jsquy...@cisco.com>
wrote:

> Can you send a small reproducer program?
>
> > On Sep 28, 2015, at 4:45 PM, Diego Avesani <diego.aves...@gmail.com>
> wrote:
> >
> > Dear all,
> >
> > I have to use a send_request in a MPI_WAITALL.
> > Here the strange things:
> >
> > If I use at the begging of the SUBROUTINE:
> >
> > INTEGER :: send_request(3), recv_request(3)
> >
> > I have no problem, but if I use
> >
> > USE COMONVARS,ONLY : nMsg
> > with nMsg=3
> >
> > and after that I declare
> >
> > INTEGER :: send_request(nMsg), recv_request(nMsg), I get the following
> error:
> >
> > [Lap] *** An error occurred in MPI_Waitall
> > [Lap] *** reported by process [139726485585921,0]
> > [Lap] *** on communicator MPI_COMM_WORLD
> > [Lap] *** MPI_ERR_REQUEST: invalid request
> > [Lap] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now
> abort,
> > [Lap] ***    and potentially your MPI job)
> > forrtl: error (78): process killed (SIGTERM)
> >
> > Someone could please explain to me where I am wrong?
> >
> > Thanks
> >
> > Diego
> >
> > _______________________________________________
> > users mailing list
> > us...@open-mpi.org
> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> > Link to this post:
> http://www.open-mpi.org/community/lists/users/2015/09/27703.php
>
>
> --
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2015/09/27704.php
>

Reply via email to