Lisandro Dalcin dalcinl at
Mon Oct 22 13:47:02 CDT 2007

Sathis, I have not much experience with fortran, but... if you take a
look for example at

you will see


So what the meaning of INTEGER(KIND=MPI_ADDRESS_KIND) is supposed to be??

On 10/22/07, Satish Balay <balay at> wrote:
> On Mon, 22 Oct 2007, Lisandro Dalcin wrote:
> > Did you take into accout that MPI defines MPI_Aint for this? I believe
> > we can reuse that definition, perhaps typedefing it as PetscAint or
> > PetscAInt,
> >
> > What do you think?
> MPI datatypes are c-only - hence not useful for us. For eg: MPI_Comm,
> MPI_Aint are C datatypes. The equivalent on the fortran side are
> integers. [I guess - the standard wanted to use only the available
> native F77 datatypes].
> This usually means there could be a mismatch between fortran & c
> datatypes. [For eg: on 64bit machines, MPI_Aint is 64bit - whereas
> fortran 'integer' is 32bit]. To handle this mismatch - conversion is
> usually necessary between these types in the fortran interface
> routines [using MPI_Fint as an equvalent for fortran integer] for eg:
>          MPI_Fint fcomm   = MPI_Comm_c2f(MPI_Comm comm);
>          MPI_Fint foffset = (MPI_Fint)(MPI_Aint offset);
>          [i.e int         = (int)(long) => possible truncation]
> However we try to keep the fortan and C datatypes similar - so that
> such conversions are not necessary. [and we don't have to deal will
> errors associated with them]
> Satish

Lisandro Dalcín
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594

More information about the petsc-dev mailing list