Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] making Fortran MPI_Status components public
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2012-09-27 01:30:20


Unless I am missing something here the desired incantation is either
"PUBLIC" to make an entire module's contents accessible, or "PUBLIC ::
[component]" for individual control.

PUBLIC should be a standard part of F95 (no configure probe required).
However, the presence of "OMPI_PRIVATE" suggests you already have a
configure probe for the "PRIVATE" keyword.

-Paul

On Wed, Sep 26, 2012 at 10:14 PM, Jeff Squyres <jsquyres_at_[hidden]> wrote:

> Craig: Can you reply to Eugene's question? I *assume* the answer is "no",
> since we don't need it for any other compilers. Is there an optional
> "public" directive that we can use?
>
> Eugene: can you see if your compiler supports an optional "public" kind of
> directive? We could discover this directive during configure, and then
> only use it when using your compiler.
>
>
>
> On Sep 26, 2012, at 9:49 PM, Eugene Loh wrote:
>
> > The ibm tests aren't building for me. One of the issues is
> mprobe_usempif08.f90 trying to access status%MPI_SOURCE and status%MPI_TAG.
> I assume this is supposed to work, but it doesn't. E.g., trunk with
> Oracle Studio compilers:
> >
> > % cat a.f90
> > use mpi_f08
> > type(MPI_Status) status
> > write(6,*) status%MPI_SOURCE
> > write(6,*) status%MPI_TAG
> > end
> > % mpifort -m64 -c a.f90
> >
> > write(6,*) status%MPI_SOURCE
> > ^
> > "a.f90", Line = 3, Column = 21: ERROR: "MPI_SOURCE" is a private
> component of "MPI_STATUS" and cannot be used outside of the module.
> >
> > write(6,*) status%MPI_TAG
> > ^
> > "a.f90", Line = 4, Column = 21: ERROR: "MPI_TAG" is a private component
> of "MPI_STATUS" and cannot be used outside of the module.
> >
> > If I look in ompi/mpi/fortran/[base|use-mpi-f08-desc]/mpi-f08-types.f90,
> I see:
> >
> > type, BIND(C) :: MPI_Status
> > integer :: MPI_SOURCE
> > integer :: MPI_TAG
> > integer :: MPI_ERROR
> > integer(C_INT) OMPI_PRIVATE :: c_cancelled
> > integer(C_SIZE_T) OMPI_PRIVATE :: c_count
> > end type MPI_Status
> >
> > Should the first three components explicitly be made public?
> > _______________________________________________
> > devel mailing list
> > devel_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900