You're absolutely right -- this is another logical type that we missed. This has now been fixed on both the trunk and the v1.1 branch; should be in tomorrow's snapshots.
Thanks! > -----Original Message----- > From: users-boun...@open-mpi.org > [mailto:users-boun...@open-mpi.org] On Behalf Of Michael Kluskens > Sent: Sunday, April 30, 2006 12:17 PM > To: Open MPI Users > Subject: [OMPI users] MPI_Intercomm_Merge -- Fortran > > MPI_Intercomm_Merge( intercomm, high, newintracomm, ier ) > > None of the books I have state the variable type of the second > argument for MPI_Intercomm_Merge for Fortran. Class notes I have > from David Cronk state it is a Logical. > > In C it is an "int" with values of true and false. > > Looking at OpenMPI 1.1a4r9780 (& openmpi-1.2a1r9780) I find the > following: > > ./ompi/mpi/f77/intercomm_merge_f.c: > > OMPI_GENERATE_F77_BINDINGS (PMPI_INTERCOMM_MERGE, > pmpi_intercomm_merge, > pmpi_intercomm_merge_, > pmpi_intercomm_merge__, > pmpi_intercomm_merge_f, > (MPI_Fint *intercomm, > MPI_Flogical *high, > MPI_Fint *newintercomm, MPI_Fint *ierr), > (intercomm, high, newintercomm, ierr) ) > > and > > *ierr = MPI_Intercomm_merge (c_intercomm, OMPI_LOGICAL_2_INT > (*high), > &c_newcomm); > > This implies to me that in Fortran the second argument should be a > logical which makes sense. > > > But in ./ompi/mpi/f90/mpi-f90-interfaces.h, I find: > ------------- > interface MPI_Intercomm_merge > > subroutine MPI_Intercomm_merge(intercomm, high, newintercomm, ierr) > include 'mpif.h' > integer, intent(in) :: intercomm > integer, intent(in) :: high > integer, intent(out) :: newintercomm > integer, intent(out) :: ierr > end subroutine MPI_Intercomm_merge > > end interface MPI_Intercomm_merge > ------------- > which I suspect is wrong or at least incomplete with regards to the > second argument. > > In which case the problem is also in ./ompi/mpi/f90/scripts/mpi-f90- > interfaces.h.sh > ---------- > subroutine ${procedure}(intercomm, high, newintercomm, ierr) > include 'mpif.h' > integer, intent(in) :: intercomm > integer, intent(in) :: high > integer, intent(out) :: newintercomm > integer, intent(out) :: ierr > end subroutine ${procedure} > > EOF > } > > start MPI_Intercomm_merge small > output_162 MPI_Intercomm_merge > end MPI_Intercomm_merge > ------------- > > Michael > > ps. MPI_Comm_get_attr is fixed in both these versions. > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >