I could not fine PETSC_HAVE_MPI_EXSCAN in the tags file. Am I missing something?
Mark On Jul 28, 2011, at 3:31 PM, Barry Smith wrote: > > Ideally code like > > #if defined(PETSC_HAVE_MPI_EXSCAN) > cool C code that uses MPI_EXSCAN > #else > less cool C code that uses something else in MPI that is in MPI 1 > #endif > > less ideal but ok code > > #if defined(PETSC_HAVE_MPI_EXSCAN) > cool C code that uses MPI_EXSCAN > #else > SETERRQ(..., "Sorry but this code requires MPI_EXSCAN that doesn't exist > on your machine's version of MPI, install a MPI2 with PETSc to get this > functionality") > #endif > > > Then to make sure PETSC_HAVE_MPI_EXSCAN gets defined when it can add a > test for MPI_Exscan() to bottom of config/BuildSystem/config/packages/MPI.py > with the other tests for MPI to functions > > PETSc only requires MPI 1.1 support so any 2.0 or later stuff used needs > this kind of protection. > > Barry > > > On Jul 28, 2011, at 2:24 PM, Mark F. Adams wrote: > >> Dumb question: How do you protect it? >> Mark >> >> On Jul 28, 2011, at 3:05 PM, Barry Smith wrote: >> >>> >>> On Jul 28, 2011, at 11:55 AM, Jose E. Roman wrote: >>> >>>> We are getting an undefined reference `MPI_Exscan'. This function is used >>>> in src/mat/impls/nest/matnest.c. >>>> If I am not wrong, MPI_Exscan was introduced in MPI-2 but was not >>>> available in the previous standard. Apparently, the machine where we are >>>> compiling is very old and has MPI-1 only. >>>> >>>> I guess there should be a PETSC_HAVE_MPI_EXSCAN test in configure. >>> >>> Correct, whoever used that MPI 2 function in PETSc is obligated to protect >>> it. >>> >>> Barry >>> >>> >>>> >>>> Jose >>>> >>> >>> >> > >
