> 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
> 

Reply via email to