dear Jeff, dear all,
I have notice that if I initialize the variables, I do not have the error
anymore:
!
  ALLOCATE(SEND_REQUEST(nMsg),RECV_REQUEST(nMsg))
  SEND_REQUEST=0
  RECV_REQUEST=0
!

Could you please explain me why?
Thanks


Diego


On 29 September 2015 at 16:08, Diego Avesani <diego.aves...@gmail.com>
wrote:

> 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