2 C Test program from Kevin Maguire (K.Maguire@dl.ac.uk); hung earlier
3 C T3D verions. Modified by WDG to be Fortran 77
10 INTEGER STRT,STOP,STEP
11 PARAMETER ( STRT = 1 , STOP = 1000 , STEP = 10 )
14 PARAMETER (MAX_MESS = STOP)
17 PARAMETER (NUM_LOOPS = 5)
20 PARAMETER (VERBOSE = .FALSE.)
22 REAL MESSAGE1(MAX_MESS),MESSAGE2(MAX_MESS)
24 INTEGER MES_SIZE,MES_NUM,ID,IERR
25 INTEGER TO1,FROM1,MES_ID1
26 INTEGER TO2,FROM2,MES_ID2
27 INTEGER INODE,ITOTNODE
28 INTEGER STATUS(MPI_STATUS_SIZE)
35 $ (MPI_COMM_WORLD,INODE,IERR)
37 $ (MPI_COMM_WORLD,ITOTNODE,IERR)
39 $ (MPI_COMM_WORLD,MPI_TAG_UB,TAG_UP_BD,FLAG,IERR)
43 CALL MPI_BARRIER(MPI_COMM_WORLD,IERR)
47 DO 10 MES_SIZE=STRT,STOP,STEP
49 DO 20 MES_NUM=1,NUM_LOOPS
56 IF (ID.GE.TAG_UP_BD) ID = 0
62 IF (ID.GE.TAG_UP_BD) ID = 0
69 $ MESSAGE1,MES_SIZE,MPI_REAL,
70 $ TO1,MES_ID1,MPI_COMM_WORLD,
74 $ MESSAGE2,MES_SIZE,MPI_REAL,
75 $ FROM2,MES_ID2,MPI_COMM_WORLD,
80 IF (INODE.EQ.(ITOTNODE-1)) THEN
83 $ MESSAGE1,MES_SIZE,MPI_REAL,
84 $ FROM1,MES_ID1,MPI_COMM_WORLD,
88 $ MESSAGE2,MES_SIZE,MPI_REAL,
89 $ TO2,MES_ID2,MPI_COMM_WORLD,
94 CALL MPI_BARRIER(MPI_COMM_WORLD,IERR)
96 IF (INODE.EQ.0 .AND. VERBOSE) THEN
98 $ MES_SIZE,MES_NUM,TO1,FROM1,MES_ID1
100 $ MES_SIZE,MES_NUM,TO2,FROM2,MES_ID2
108 C If we get here at all, we're ok
109 PRINT *, ' No Errors'
111 CALL MPI_FINALIZE(IERR)