Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

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