Add qlmpi and swap to mckernel (This is rebase commit for merging to development)
This commit is contained in:
committed by
Ken Sato
parent
74f15783d2
commit
236a072311
73
test/qlmpi/qlmpi_testsuite/CT20.f
Normal file
73
test/qlmpi/qlmpi_testsuite/CT20.f
Normal file
@@ -0,0 +1,73 @@
|
||||
c---+c---1----+----2----+----3----+----4----+----5----+----6----+----7--!!!!!!!!
|
||||
include 'mpif.h'
|
||||
integer dsize
|
||||
parameter(dsize=536870912)
|
||||
character val*10
|
||||
integer ival
|
||||
integer ierr
|
||||
integer i
|
||||
integer*4 dat(dsize)
|
||||
common dat
|
||||
integer rank
|
||||
integer size
|
||||
integer st(MPI_STATUS_SIZE)
|
||||
|
||||
call MPI_INIT(ierr)
|
||||
1000 continue
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
|
||||
|
||||
c size check
|
||||
if(size.ne.2)then
|
||||
if(rank.eq.0)then
|
||||
print*,'bad MPI size'
|
||||
endif
|
||||
call MPI_FINALIZE(ierr)
|
||||
stop 1
|
||||
endif
|
||||
|
||||
c read argument
|
||||
iargs = iargc()
|
||||
if(iargs.ne.1)then
|
||||
print *,'bad argument'
|
||||
call MPI_FINALIZE(ierr)
|
||||
stop 1
|
||||
endif
|
||||
call getarg(1, val)
|
||||
read(val, '(i10)')ival
|
||||
print *,'val=',ival
|
||||
|
||||
c test
|
||||
if(rank.eq.0)then
|
||||
do 10 i=1, dsize
|
||||
dat(i) = -1
|
||||
10 continue
|
||||
print *,'r1 val=',ival
|
||||
call MPI_RECV(dat, dsize, MPI_INTEGER4, 1, 0, MPI_COMM_WORLD,
|
||||
c st, ierr)
|
||||
print *,'r2 val=',ival
|
||||
do 20 i=1, dsize
|
||||
if(dat(i).ne.ival)then
|
||||
print *,'*** bad value idx=',i,', dat=',dat(i),
|
||||
c ' , val=',ival
|
||||
goto 100
|
||||
endif
|
||||
20 continue
|
||||
print *,'*** MPI_Send/Recv OK *** '
|
||||
100 continue
|
||||
else
|
||||
do 30 i=1, dsize
|
||||
dat(i) = ival
|
||||
30 continue
|
||||
call MPI_SEND(dat, dsize, MPI_INTEGER4, 0, 0, MPI_COMM_WORLD,
|
||||
c ierr)
|
||||
endif
|
||||
|
||||
c repeat?
|
||||
call ql_client(ierr)
|
||||
if(ierr.eq.1)then
|
||||
print *,'repeat'
|
||||
goto 1000
|
||||
endif
|
||||
call MPI_FINALIZE(ierr)
|
||||
end
|
||||
Reference in New Issue
Block a user