From: snir@XXXXXXXXXX X-Lotus-FromDomain: IBMUS To: Nicholas Nevin - Sun HPC High Performance Computing cc: gropp@XXXXXXXXXXX,mpi-core@XXXXXXXXXXX Date: Fri, 26 Mar 1999 16:20:21 -0500 Subject: Re: clarification on inter-language interoperability of attributes Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii Content-Disposition: inline X-UIDL: 87c7fbdb950c6539efad95ea4e515263 MPI_xxx_get_attr returns a void* value in "attr". If the attribute you accessed is a Fortran attribute then (int*)attr will point to an INTEGER. MPI_ADDRESS_KIND is irrelevant. > Unfortunately I left out some parentheses in my paraphrase of the standard, it actually reads "When an integer valued attribute is accessed from C or C++, then MPI_xxx_get_attr will return the address of (a pointer to) the integer valued attribute." This is what I had meant to say. So my question still stands. Assuming Fortran INTEGER is 32 bits and MPI_ADDRESS_KIND is 8, do I get back from MPI_xxx_get_attr a pointer to a 32 bit integer or a 64 bit integer? I see three cases and the answer may not be the same for all of them. 1. predefined attributes. The answer may vary according to the attribute (window size is of type MPI_ADDRESS_KIND in Fortran). 2. attributes set in Fortran with MPI_ATTR_PUT 3. attributes set in Fortran with MPI_COMM_SET_ATTR Of course it would be nice if the answer was the same for all the above cases which would require that a pointer to a 64 bit integer be returned in order to avoid possible data truncation. -nick.