> On Apr 25, 2018, at 2:31 PM, Jed Brown <[email protected]> wrote: > > "Smith, Barry F." <[email protected]> writes: > >>> On Apr 25, 2018, at 1:36 PM, Jed Brown <[email protected]> wrote: >>> >>> It is currently installed to include/petsc/mpiuni/mpi.h and petscsys.h >>> includes it as <mpi.h>, which means that users of MPIUNI need to put >>> -I/prefix/include/petsc/mpiuni in their command lines. Matt and I agree >>> that this is bad. We disagree on the solution. >>> >>> He wants to install it to /prefix/include/mpi.h as though the user had >>> written --download-mpich. This would conflict if a user later installs >>> a real MPI to that location. >> >> Jed, >> >> So you propose in petscsys.h ? >> >> #if defined(PETSC_HAVE_MPIUNI) >> #include <petsc/mpiuni/mpi.h> >> #else >> #include <mpi.h> >> #endif >> >> I don't have a problem with this. > > Yes, and same installation layout as today.
Ok, this is far better than copying the mpiuni mpi.h file to a public place (Matt's suggestion) and is a bit better than requiring the extra -I flag (Satish's suggestion) > >> I notice that the Fortran petscsys.h is scattered full of weird MPIUni >> specific stuff like >> >> #if defined (PETSC_HAVE_MPIUNI) >> #include "mpiunifdef.h" >> #endif >> >> #if defined(PETSC_HAVE_MPIUNI) >> #define MPI_Comm PetscFortranInt >> #define MPI_Group PetscFortranInt >> #define PetscMPIInt PetscFortranInt >> #else >> #define MPI_Comm integer >> #define MPI_Group integer >> #define PetscMPIInt integer >> #endif >> >> It seems PETSc Fortran does not use the standard mpif.h file? > > Yuck. I don't remember the history of this construct. There must have been a reason years ago that may no longer exist, I don't know. Barry
