[MPIWG Fortran] Type of MPI_Status

Bill Long longb at cray.com
Thu Mar 13 08:58:07 CDT 2014


This does raise an earlier issue that it is <very remotely> possible that Fortran’s default INTEGER is not an interoperable type, and thus the MPI_Status type should not be a BIND(C) type if it has INTEGER components.  Having BIND(C) does allow you to declare a C global name MPI_STATUS_IGNORE in Fortran, which solves one problem nicely.  I don’t see any advantage to having INTEGER components (as opposed to INTEGER(C_Int), for example). So this seems to represent the worse of the two options.

Cheers,
Bill



On Mar 13, 2014, at 8:36 AM, Jeff Squyres (jsquyres) <jsquyres at cisco.com> wrote:

> Done.  Good catch:
> 
>    https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/415
> 
> This is a trivial ticket, but if you could make sure it's ok, I'll send it to the mpi-forum list so that it can get added to the next meeting's agenda.
> 
> 
> On Mar 13, 2014, at 1:51 AM, Rolf Rabenseifner <rabenseifner at hlrs.de> wrote:
> 
>> Jeff and Junchao,
>> 
>> it is a missing word INTEGER in this part of the sentence
>> 
>> In whole MPI these three values are in Fortran INTEGER and nothing else
>> 
>> Junchao, thank you for the hint that an erratum is neede
>>        to prevent from such misinterpretation
>> 
>> Jeff, please can you file the errata ticket resulting in
>> 
>>   ... containing three public INTEGER fields named ...
>> 
>> Best regards
>> Rolf
>> 
>> 
>> ----- Original Message -----
>>> From: "Junchao Zhang" <jczhang at mcs.anl.gov>
>>> To: "MPI-WG Fortran working group" <mpiwg-fortran at lists.mpi-forum.org>
>>> Sent: Thursday, March 13, 2014 4:49:49 AM
>>> Subject: [MPIWG Fortran] Type of MPI_Status
>>> 
>>> 
>>> 
>>> 
>>> Hello,
>>> 
>>> 
>>> p30 of MPI3 says "In Fortran with USE mpi or INCLUDE ’mpif.h’, status
>>> is an array of INTEGERs of size MPI_STATUS_SIZE. ..., With Fortran
>>> USE mpi_f08, status is defined as the Fortran BIND(C) derived type
>>> TYPE(MPI_Status) containing three public fields named MPI_SOURCE ,
>>> MPI_TAG , and MPI_ERROR"
>>> 
>>> In other words, it does't say type of the three public fields must be
>>> INTEGER. So, in mpi_f08, can I declare MPI_Status as
>>> 
>>> 
>>> TYPE, BIND(C) :: MPI_Status
>>> INTEGER(C_INT) :: MPI_SOURCE, MPI_TAG, MPI_ERROR
>>> ... ! other fields
>>> END TYPE MPI_Status
>>> 
>>> 
>>> I find it makes MPI_Status binding easier. Since this type is
>>> interoperable with C, I do not need to allocate temp variables to do
>>> type conversion when INTEGER is not a C_INT.
>>> 
>>> 
>>> 
>>> --Junchao Zhang
>>> _______________________________________________
>>> mpiwg-fortran mailing list
>>> mpiwg-fortran at lists.mpi-forum.org
>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
>> 
>> -- 
>> Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
>> High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
>> University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
>> Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
>> Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)
>> _______________________________________________
>> mpiwg-fortran mailing list
>> mpiwg-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
> 
> 
> -- 
> Jeff Squyres
> jsquyres at cisco.com
> For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> _______________________________________________
> mpiwg-fortran mailing list
> mpiwg-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran

Bill Long                                                                       longb at cray.com
Fortran Technical Suport  &                                  voice:  651-605-9024
Bioinformatics Software Development                     fax:  651-605-9142
Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101





More information about the mpiwg-fortran mailing list