|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! (C) 2004 by Argonne National Laboratory.
|
|
Packit |
0848f5 |
! See COPYRIGHT in top-level directory.
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
program main
|
|
Packit |
0848f5 |
use mpi
|
|
Packit |
0848f5 |
integer ierr, errs
|
|
Packit |
0848f5 |
integer size1, size2
|
|
Packit |
0848f5 |
real a
|
|
Packit |
0848f5 |
real d(20)
|
|
Packit |
0848f5 |
double precision b
|
|
Packit |
0848f5 |
complex c
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
errs = 0
|
|
Packit |
0848f5 |
call mpi_init(ierr)
|
|
Packit |
0848f5 |
call mpi_sizeof( errs, size1, ierr )
|
|
Packit |
0848f5 |
call mpi_type_size( MPI_INTEGER, size2, ierr )
|
|
Packit |
0848f5 |
if (size1 .ne. size2) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, "integer size is ", size2, " sizeof claims ", size1
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mpi_sizeof( a, size1, ierr )
|
|
Packit |
0848f5 |
call mpi_type_size( MPI_REAL, size2, ierr )
|
|
Packit |
0848f5 |
if (size1 .ne. size2) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, "real size is ", size2, " sizeof claims ", size1
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mpi_sizeof( b, size1, ierr )
|
|
Packit |
0848f5 |
call mpi_type_size( MPI_DOUBLE_PRECISION, size2, ierr )
|
|
Packit |
0848f5 |
if (size1 .ne. size2) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, "double precision size is ", size2, " sizeof claims ", size1
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mpi_sizeof( c, size1, ierr )
|
|
Packit |
0848f5 |
call mpi_type_size( MPI_COMPLEX, size2, ierr )
|
|
Packit |
0848f5 |
if (size1 .ne. size2) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, "complex size is ", size2, " sizeof claims ", size1
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! A previous version of this test called mpi_sizeof with a character variable.
|
|
Packit |
0848f5 |
! However, the MPI 2.2 standard, p 494, line 41, defines MPI_SIZEOF only
|
|
Packit |
0848f5 |
! for "numeric intrinsic type", so that test was removed.
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
call mpi_sizeof( d, size1, ierr )
|
|
Packit |
0848f5 |
call mpi_type_size( MPI_REAL, size2, ierr )
|
|
Packit |
0848f5 |
if (size1 .ne. size2) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, "real array size is ", size2, " sizeof claims ", size1
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
if (errs .gt. 0) then
|
|
Packit |
0848f5 |
print *, ' Found ', errs, ' errors'
|
|
Packit |
0848f5 |
else
|
|
Packit |
0848f5 |
print *, ' No Errors'
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
call mpi_finalize(ierr)
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
end program main
|