C ------- mpi_exch.F --------------------------------------- 29.11.01 ---- C (c) M.Pester C ------------------------------------------------------------------------- C ******* EXCHNG : Austausch zweier (gleichlanger) Pakete zwischen C zwei Prozessoren C L (I) Linknummer, 1,...,NCUBE C N (I) Anzahl Worte zu senden / empfangen C XS (I) Send Buffer C XR (O) Recv Buffer C SUBROUTINE EXCHNG(L,N,XS,XR) DIMENSION XS(*),XR(*) LOGICAL Btest INCLUDE 'include/trnet.inc' INCLUDE 'include/times.inc' INCLUDE 'mpif.h' INTEGER STATUS(MPI_STATUS_SIZE),IERROR #ifdef SECNDS_EXTERNAL External secnds #endif T0=secnds(0.0) Iwho = IEOR(ICH,ISHFT(1,L-1)) CALL MPI_SENDRECV(XS,N,MPI_INTEGER,Iwho,19, + XR,N,MPI_INTEGER,Iwho,19, + MPI_COMM_WORLD, STATUS, IERROR) TSndRcv=TSndRcv+secnds(T0) Nout = Lsend RETURN END