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: Jeff Squyres (jsquyres_at_[hidden])
Date: 2012-09-27 01:14:11


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/