|
[Fortran] 纯文本查看 复制代码 05 | integer :: ierr , myid , nprocs |
06 | integer :: msize = 6 , bsize |
07 | real ( 8 ) :: buffer ( 6 ) , b ( 6 ) |
08 | real ( 8 ) , allocatable :: tmbuff ( : ) |
09 | integer , parameter :: MAX_BUFFER_SIZE = 1024 |
12 | call MPI_comm_size ( MPI_comm_world , nprocs , ierr ) |
13 | call MPI_comm_rank ( MPI_comm_world , myid , ierr ) |
17 | buffer ( 1 : 6 ) = ( / 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 / ) |
19 | allocate ( tmbuff ( MAX_BUFFER_SIZE ) ) |
20 | call MPI_Buffer_attach ( tmbuff , size ( tmbuff ) * 8 , ierr ) |
22 | call MPI_bsend ( buffer , msize -1 , MPI_double_precision , 1 , 2000 , MPI_comm_world , ierr ) |
23 | call MPI_bsend ( buffer , 1 , MPI_double_precision , 1 , 2001 , MPI_comm_world , ierr ) |
25 | call MPI_buffer_detach ( tmbuff , size ( tmbuff ) * 8 , ierr ) |
27 | else if ( myid == 1 ) then |
28 | call MPI_recv ( b , msize -1 , MPI_double_precision , 0 , 2000 , MPI_comm_world , ierr ) |
30 | call MPI_recv ( b , 1 , MPI_double_precision , 0 , 2001 , MPI_comm_world , ierr ) |
35 | call MPI_finalize ( ierr ) |
请问这段代码的这一部分如何修改正确?
[Fortran] 纯文本查看 复制代码 1 | allocate ( tmbuff ( MAX_BUFFER_SIZE ) ) |
2 | call MPI_Buffer_attach ( tmbuff , size ( tmbuff ) * 8 , ierr ) |
4 | call MPI_bsend ( buffer , msize -1 , MPI_double_precision , 1 , 2000 , MPI_comm_world , ierr ) |
5 | call MPI_bsend ( buffer , 1 , MPI_double_precision , 1 , 2001 , MPI_comm_world , ierr ) |
运行时候有错误
|
|