[mpich2-commits] r7725 - mpich2/trunk/test/mpi/f77/datatype

chan at mcs.anl.gov chan at mcs.anl.gov
Thu Jan 13 16:47:22 CST 2011


Author: chan
Date: 2011-01-13 16:47:22 -0600 (Thu, 13 Jan 2011)
New Revision: 7725

Modified:
   mpich2/trunk/test/mpi/f77/datatype/allctypesf.f
Log:
applied patch for req#1094 so Fortran tests become consistent with C's datatype/typename.c when long long type isn't avaiable.



Modified: mpich2/trunk/test/mpi/f77/datatype/allctypesf.f
===================================================================
--- mpich2/trunk/test/mpi/f77/datatype/allctypesf.f	2011-01-13 22:43:00 UTC (rev 7724)
+++ mpich2/trunk/test/mpi/f77/datatype/allctypesf.f	2011-01-13 22:47:22 UTC (rev 7725)
@@ -2,9 +2,9 @@
       include 'mpif.h'
       integer atype, ierr
 C
-      call mpi_init(ierr)
+      call mtest_init(ierr)
       call mpi_comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN, 
-     *     ierr )
+     *                              ierr )
 C
 C     Check that all Ctypes are available in Fortran (MPI 2.1, p 483, line 46)
 C
@@ -21,13 +21,21 @@
        call checkdtype( MPI_UNSIGNED_LONG, "MPI_UNSIGNED_LONG", ierr )
        call checkdtype( MPI_FLOAT, "MPI_FLOAT", ierr )
        call checkdtype( MPI_DOUBLE, "MPI_DOUBLE", ierr )
-       call checkdtype( MPI_LONG_DOUBLE, "MPI_LONG_DOUBLE", ierr )
-       call checkdtype2( MPI_LONG_LONG_INT, "MPI_LONG_LONG_INT", 
-     *      "MPI_LONG_LONG", ierr )
-       call checkdtype( MPI_UNSIGNED_LONG_LONG, 
-     *      "MPI_UNSIGNED_LONG_LONG", ierr )
-       call checkdtype2( MPI_LONG_LONG, "MPI_LONG_LONG", 
-     *      "MPI_LONG_LONG_INT", ierr )
+       if (MPI_LONG_DOUBLE .ne. MPI_DATATYPE_NULL) then
+         call checkdtype( MPI_LONG_DOUBLE, "MPI_LONG_DOUBLE", ierr )
+       endif
+       if (MPI_LONG_LONG_INT .ne. MPI_DATATYPE_NULL) then
+         call checkdtype2( MPI_LONG_LONG_INT, "MPI_LONG_LONG_INT", 
+     *                     "MPI_LONG_LONG", ierr )
+       endif
+       if (MPI_UNSIGNED_LONG_LONG .ne. MPI_DATATYPE_NULL) then
+         call checkdtype( MPI_UNSIGNED_LONG_LONG, 
+     *                    "MPI_UNSIGNED_LONG_LONG", ierr )
+       endif
+       if (MPI_LONG_LONG .ne. MPI_DATATYPE_NULL) then
+         call checkdtype2( MPI_LONG_LONG, "MPI_LONG_LONG", 
+     *                     "MPI_LONG_LONG_INT", ierr )
+       endif
        call checkdtype( MPI_PACKED, "MPI_PACKED", ierr )
        call checkdtype( MPI_LB, "MPI_LB", ierr )
        call checkdtype( MPI_UB, "MPI_UB", ierr )
@@ -36,7 +44,10 @@
        call checkdtype( MPI_LONG_INT, "MPI_LONG_INT", ierr )
        call checkdtype( MPI_SHORT_INT, "MPI_SHORT_INT", ierr )
        call checkdtype( MPI_2INT, "MPI_2INT", ierr )
-       call checkdtype( MPI_LONG_DOUBLE_INT, "MPI_LONG_DOUBLE_INT",ierr)
+       if (MPI_LONG_DOUBLE_INT .ne. MPI_DATATYPE_NULL) then
+         call checkdtype( MPI_LONG_DOUBLE_INT, "MPI_LONG_DOUBLE_INT",
+     *                    ierr)
+       endif
 C
 C     Check that all Ctypes are available in Fortran (MPI 2.2)
 C     Note that because of implicit declarations in Fortran, this
@@ -52,28 +63,25 @@
           call checkdtype( MPI_UINT16_T, "MPI_UINT16_T", ierr )
           call checkdtype( MPI_UINT32_T, "MPI_UINT32_T", ierr )
           call checkdtype( MPI_UINT64_T, "MPI_UINT64_T", ierr )
-C other C99 types 
+C other C99 types
           call checkdtype( MPI_C_BOOL, "MPI_C_BOOL", ierr )
           call checkdtype( MPI_C_FLOAT_COMPLEX, "MPI_C_FLOAT_COMPLEX",
-     *         ierr)
+     *                     ierr)
           call checkdtype2( MPI_C_COMPLEX, "MPI_C_COMPLEX", 
-     *         "MPI_C_FLOAT_COMPLEX", ierr )
+     *                      "MPI_C_FLOAT_COMPLEX", ierr )
           call checkdtype( MPI_C_DOUBLE_COMPLEX, "MPI_C_DOUBLE_COMPLEX", 
-     *         ierr )
-          call checkdtype( MPI_C_LONG_DOUBLE_COMPLEX, 
-     *         "MPI_C_LONG_DOUBLE_COMPLEX", ierr )
+     *                     ierr )
+          if (MPI_C_LONG_DOUBLE_COMPLEX .ne. MPI_DATATYPE_NULL) then
+            call checkdtype( MPI_C_LONG_DOUBLE_COMPLEX, 
+     *                       "MPI_C_LONG_DOUBLE_COMPLEX", ierr )
+          endif
 C address/offset types 
           call checkdtype( MPI_AINT, "MPI_AINT", ierr )
           call checkdtype( MPI_OFFSET, "MPI_OFFSET", ierr )
        endif
 C
-       if (ierr .eq. 0) then
-          print *, " No Errors"
-       else
-          print *, " Found ", ierr, " errors"
-       endif
+       call mtest_finalize( ierr )
        call MPI_Finalize( ierr )
-       stop 
        end
 C
 C Check name of datatype



More information about the mpich2-commits mailing list