mirror of https://gitlab.com/QEF/q-e.git
- fixed the bug related to msglen in mp_get and mp_put
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4430 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
c67ed4338e
commit
4cac89b444
268
Modules/mp.f90
268
Modules/mp.f90
|
@ -889,18 +889,21 @@
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(dest .NE. sour) THEN
|
IF(dest .NE. sour) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, msglen, MPI_INTEGER, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, msglen, MPI_INTEGER, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8060 )
|
IF (ierr/=0) CALL mp_stop( 8060 )
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, msglen, MPI_INTEGER, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, msglen, MPI_INTEGER, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8061 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8061 )
|
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8062 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8062 )
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest = msg_sour
|
msg_dest = msg_sour
|
||||||
|
@ -910,6 +913,7 @@
|
||||||
CALL MPI_BARRIER(group, IERR)
|
CALL MPI_BARRIER(group, IERR)
|
||||||
IF (ierr/=0) CALL mp_stop( 8063 )
|
IF (ierr/=0) CALL mp_stop( 8063 )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mp_high_watermark = MAX( mp_high_watermark, 4 * msglen )
|
mp_high_watermark = MAX( mp_high_watermark, 4 * msglen )
|
||||||
mp_call_count( 20 ) = mp_call_count( 20 ) + 1
|
mp_call_count( 20 ) = mp_call_count( 20 ) + 1
|
||||||
mp_call_sizex( 20 ) = MAX( mp_call_sizex( 20 ), msglen )
|
mp_call_sizex( 20 ) = MAX( mp_call_sizex( 20 ), msglen )
|
||||||
|
@ -937,20 +941,23 @@
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_INTEGER, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_INTEGER, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8064 )
|
IF (ierr/=0) CALL mp_stop( 8064 )
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_INTEGER, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_INTEGER, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8065 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8065 )
|
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8066 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8066 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
@ -982,26 +989,28 @@
|
||||||
INTEGER :: ierr, nrcv
|
INTEGER :: ierr, nrcv
|
||||||
INTEGER :: msglen
|
INTEGER :: msglen
|
||||||
|
|
||||||
msglen=0
|
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
group = mpi_comm_world
|
group = mpi_comm_world
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8069 )
|
IF (ierr/=0) CALL mp_stop( 8069 )
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8070 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8070 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8071 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8071 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
@ -1041,20 +1050,23 @@
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8074 )
|
IF (ierr/=0) CALL mp_stop( 8074 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8075 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8075 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8076 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8076 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour,1), 1:SIZE(msg_sour,2)) = msg_sour(:,:)
|
msg_dest(1:SIZE(msg_sour,1), 1:SIZE(msg_sour,2)) = msg_sour(:,:)
|
||||||
|
@ -1092,20 +1104,23 @@
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF( dest .NE. sour ) THEN
|
IF( dest .NE. sour ) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_COMPLEX, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_COMPLEX, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8079 )
|
IF (ierr/=0) CALL mp_stop( 8079 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_COMPLEX, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_COMPLEX, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8080 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8080 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_COMPLEX, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_COMPLEX, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8081 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8081 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
@ -1143,20 +1158,23 @@
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(dest .NE. sour) THEN
|
IF(dest .NE. sour) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, 1, MPI_INTEGER, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, 1, MPI_INTEGER, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8084 )
|
IF (ierr/=0) CALL mp_stop( 8084 )
|
||||||
msglen = 1
|
msglen = 1
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, 1, MPI_INTEGER, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, 1, MPI_INTEGER, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8085 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8085 )
|
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8086 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8086 )
|
msglen = 1
|
||||||
msglen = 1
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest = msg_sour
|
msg_dest = msg_sour
|
||||||
|
@ -1190,20 +1208,23 @@
|
||||||
group = mpi_comm_world
|
group = mpi_comm_world
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_INTEGER, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_INTEGER, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8089 )
|
IF (ierr/=0) CALL mp_stop( 8089 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_INTEGER, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_INTEGER, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8090 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8090 )
|
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_INTEGER, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8091 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8091 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
@ -1237,20 +1258,23 @@
|
||||||
group = mpi_comm_world
|
group = mpi_comm_world
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8094 )
|
IF (ierr/=0) CALL mp_stop( 8094 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8095 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8095 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8096 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8096 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
@ -1284,20 +1308,23 @@
|
||||||
group = mpi_comm_world
|
group = mpi_comm_world
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF(sour .NE. dest) THEN
|
IF(sour .NE. dest) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_PRECISION, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8099 )
|
IF (ierr/=0) CALL mp_stop( 8099 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_PRECISION, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8100 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8100 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_PRECISION, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8101 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8101 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour,1),1:SIZE(msg_sour,2)) = msg_sour(:,:)
|
msg_dest(1:SIZE(msg_sour,1),1:SIZE(msg_sour,2)) = msg_sour(:,:)
|
||||||
|
@ -1332,20 +1359,23 @@
|
||||||
group = mpi_comm_world
|
group = mpi_comm_world
|
||||||
IF( PRESENT( gid ) ) group = gid
|
IF( PRESENT( gid ) ) group = gid
|
||||||
#endif
|
#endif
|
||||||
|
! processors not taking part in the communication have 0 lenght message
|
||||||
|
|
||||||
|
msglen = 0
|
||||||
|
|
||||||
IF( dest .NE. sour ) THEN
|
IF( dest .NE. sour ) THEN
|
||||||
#if defined(__MPI)
|
#if defined(__MPI)
|
||||||
IF(mpime .EQ. sour) THEN
|
IF(mpime .EQ. sour) THEN
|
||||||
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_COMPLEX, dest, ip, group, ierr)
|
CALL MPI_SEND( msg_sour, SIZE(msg_sour), MPI_DOUBLE_COMPLEX, dest, ip, group, ierr)
|
||||||
IF (ierr/=0) CALL mp_stop( 8104 )
|
IF (ierr/=0) CALL mp_stop( 8104 )
|
||||||
msglen = SIZE(msg_sour)
|
msglen = SIZE(msg_sour)
|
||||||
END IF
|
ELSE IF(mpime .EQ. dest) THEN
|
||||||
IF(mpime .EQ. dest) THEN
|
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_COMPLEX, sour, ip, group, istatus, IERR )
|
||||||
CALL MPI_RECV( msg_dest, SIZE(msg_dest), MPI_DOUBLE_COMPLEX, sour, ip, group, istatus, IERR )
|
IF (ierr/=0) CALL mp_stop( 8105 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8105 )
|
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_COMPLEX, nrcv, ierr)
|
||||||
CALL MPI_GET_COUNT(istatus, MPI_DOUBLE_COMPLEX, nrcv, ierr)
|
IF (ierr/=0) CALL mp_stop( 8106 )
|
||||||
IF (ierr/=0) CALL mp_stop( 8106 )
|
msglen = nrcv
|
||||||
msglen = nrcv
|
END IF
|
||||||
END IF
|
|
||||||
#endif
|
#endif
|
||||||
ELSE
|
ELSE
|
||||||
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
msg_dest(1:SIZE(msg_sour)) = msg_sour(:)
|
||||||
|
|
Loading…
Reference in New Issue