KronLinInv  0.3
Kronecker-product-based linear inversion

◆ para_srarr1ddp()

subroutine parautil::para_srarr1ddp ( integer, intent(in)  source,
integer, intent(in)  dest,
integer, intent(in)  tag,
real(dp), dimension(:), intent(in)  sendrow,
real(dp), dimension(:), intent(inout)  recvrow 
)

Definition at line 220 of file ompi_kronlininv.f08.

220 
221  integer,intent(in) :: source,dest,tag
222  real(dp),intent(in) :: sendrow(:)
223  real(dp),intent(inout) :: recvrow(:)
224 
225  integer :: mpierr,nelem
226  integer :: mpistat(mpi_status_size)
227 
228  nelem=size(sendrow) ! with no dim gives the total array size
229 
230  ! to avoid deadlocks
231  if ((myrank==source) .and. (myrank==dest)) then
232  !print*,"same send recv in ",myrank
233  recvrow = sendrow
234  else
235  if (myrank==source) then
236  !print*,"sending from ",myrank," to ",dest," tag=",tag
237  call mpi_send(sendrow, nelem, dp_real_type, dest, tag, &
238  mpi_comm_world, mpierr)
239  end if
240  if (myrank==dest) then
241  !print*,"receiving in ",myrank," from ",source," tag=",tag
242  call mpi_recv(recvrow, nelem, dp_real_type, source, tag,&
243  mpi_comm_world, mpistat, mpierr)
244  end if
245  end if
246 
integer, public, protected myrank
integer, protected dp_real_type
Here is the caller graph for this function: