C Routine zum sequentiellen Auslesen von Datenpaketen C (N Worte) aus dem Hypercube (Benutzung des Ringes) C C !! erfordert eine andere Routine auf Prozessor 0 !! C (etwa den Nproc-1 maligen Aufruf von "Ring_receive0" C SUBROUTINE Ring_Out(N,A,B,MaxB) DIMENSION A(*),B(*) INCLUDE 'include/trnet.inc' CALL VIcopy(N,B,1,A,1) Nint=N DO 1 I=1,NProc-1 CALL Send_Chan(Nint,B,Lforw) IF ( Nint .LT. 0 ) GOTO 2 IF ( ICH .EQ. 1 ) then Nint=-1 else CALL Recv_Chan(Nint,B,Lback) endif 1 CONTINUE 2 RETURN END C ---------------------------------------------------------- C Routine zum Empfang von Datenpaketen (N,B) C im Prozessor 0, C die im Hypercube unter Benutzung des Ringes C ueber die Prozedur "Ring_Out" versendet wurden. C C !!! Diese Routine muss (Nproc-1) mal aufgerufen werden !!! C SUBROUTINE Ring_receive0(N,B,MaxB) INCLUDE 'include/trnet.inc' DIMENSION B(*) CALL Recv_Chan(N,B,Lback) RETURN END