2 C Fortran program to test the basic Fortran types
4 subroutine SetupBasicTypes( basictypes, basicnames )
7 character*40 basicnames(*)
9 basictypes(1) = MPI_INTEGER
10 basictypes(2) = MPI_REAL
11 basictypes(3) = MPI_DOUBLE_PRECISION
12 basictypes(4) = MPI_COMPLEX
13 basictypes(5) = MPI_LOGICAL
14 basictypes(6) = MPI_CHARACTER
15 basictypes(7) = MPI_BYTE
16 basictypes(8) = MPI_PACKED
18 basicnames(1) = 'INTEGER'
19 basicnames(2) = 'REAL'
20 basicnames(3) = 'DOUBLE PRECISION'
21 basicnames(4) = 'COMPLEX'
22 basicnames(5) = 'LOGICAL'
23 basicnames(6) = 'CHARACTER'
24 basicnames(7) = 'BYTE'
25 basicnames(8) = 'PACKED'
33 character*40 basicnames(8)
34 integer i, errcnt, ierr
35 integer size, extent, ub, lb
39 call SetupBasicTypes( basictypes, basicnames )
43 call MPI_Type_size( BasicTypes(i), size, ierr )
44 call MPI_Type_extent( BasicTypes(i), extent, ierr )
45 call MPI_Type_lb( BasicTypes(i), lb, ierr )
46 call MPI_Type_ub( BasicTypes(i), ub, ierr )
47 if (size .ne. extent) then
49 print *, "size (", size, ") != extent (", extent,
50 * ") for basic type ", basicnames(i)
54 print *, "Lowerbound of ", basicnames(i), " was ", lb,
57 if (ub .ne. extent) then
59 print *, "Upperbound of ", basicnames(i), " was ",
60 * ub, " instead of ", extent
64 if (errcnt .gt. 0) then
65 print *, "Found ", errcnt, " errors in testing Fortran types"
67 print *, " Found no errors in basic Fortran "
70 call mpi_finalize(ierr)