1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
!
! Copyright (C) by Argonne National Laboratory
! See COPYRIGHT in top-level directory
!
program main
use mpi
integer ierr, errs
integer size1, size2
real a
real d(20)
double precision b
complex c
errs = 0
call mtest_init(ierr)
call mpi_sizeof( errs, size1, ierr )
call mpi_type_size( MPI_INTEGER, size2, ierr )
if (size1 .ne. size2) then
errs = errs + 1
print *, "integer size is ", size2, " sizeof claims ", size1
endif
call mpi_sizeof( a, size1, ierr )
call mpi_type_size( MPI_REAL, size2, ierr )
if (size1 .ne. size2) then
errs = errs + 1
print *, "real size is ", size2, " sizeof claims ", size1
endif
call mpi_sizeof( b, size1, ierr )
call mpi_type_size( MPI_DOUBLE_PRECISION, size2, ierr )
if (size1 .ne. size2) then
errs = errs + 1
print *, "double precision size is ", size2, " sizeof claims ", size1
endif
call mpi_sizeof( c, size1, ierr )
call mpi_type_size( MPI_COMPLEX, size2, ierr )
if (size1 .ne. size2) then
errs = errs + 1
print *, "complex size is ", size2, " sizeof claims ", size1
endif
!
! A previous version of this test called mpi_sizeof with a character variable.
! However, the MPI 2.2 standard, p 494, line 41, defines MPI_SIZEOF only
! for "numeric intrinsic type", so that test was removed.
!
call mpi_sizeof( d, size1, ierr )
call mpi_type_size( MPI_REAL, size2, ierr )
if (size1 .ne. size2) then
errs = errs + 1
print *, "real array size is ", size2, " sizeof claims ", size1
endif
call mtest_finalize( errs )
end program main
|