> On Oct 23, 2017, at 11:11 PM, Adrian Croucher <[email protected]> > wrote: > > hi > > > On 24/10/17 17:00, Barry Smith wrote: >>> - With PetscSFBcastBegin() / PetscSFBcastEnd() you currently still have to >>> use the C MPI types in the Fortran calling code, rather than the Fortran >>> ones. I think it is a bit confusing to have to mix the two up in the same >>> code. If you put MPI_INTEGER instead of MPI_INT for example, it dies in >>> F90Array1dAccess() with 'unsupported MPI_Datatype'. Could the Fortran MPI >>> types be supported in these routines just by adding them as alternatives >>> into the conditionals? >> Hmm, Jed will need to provide wisdom the Linux manual page for MPI_INTEGER >> clearly states: >> >> Note that the Fortran types should only be used in Fortran programs, and the >> C types should only be used in C programs. For example, it is in error to >> use MPI_INT for a Fortran INTEGER. Datatypes are of type MPI_Datatype in C >> and of type INTEGER in Fortran. >> >> If this is true then there is no place we can do the change properly. > > Yes, I first thought that MPI_Type_f2c() would convert Fortran MPI datatypes > to the C ones (e.g. turn MPI_INTEGER into MPI_INT), so that the C side of the > interface wouldn't have to worry about the Fortran MPI datatypes, but it > doesn't really seem to do that.
Do did I. Its existence seems to contradict the statement in the Linux manual page. Well wait for Jed. > > - Adrian > > -- > Dr Adrian Croucher > Senior Research Fellow > Department of Engineering Science > University of Auckland, New Zealand > email: [email protected] > tel: +64 (0)9 923 4611 >
