Given that I'll inevitably get the language wrong, can someone suggest
proper verbiage for this statement in the OMPI README:
- MPI_REAL16 and MPI_COMPLEX32 are only supported on platforms where a
portable C datatype can be found that matches the Fortran type
REAL*16, both in size and bit representation. The Intel v11
compiler, for example, supports these types, but requires the use of
the "_16" suffix in Fortran when assigning constants to REAL*16
variables.
Thanks!
On Jun 22, 2009, at 12:34 PM, N.M. Maclaren wrote:
On Jun 22 2009, Iain Bason wrote:
>Jeff Squyres wrote:
>
>> Thanks for looking into this, David.
>>
>> So if I understand that correctly, it means you have to assign all
>> literals in your fortran program with a "_16" suffix. I don't
know if
>> that's standard Fortran or not.
>
>Yes, it is.
Sorry - no, it isn't. It's syntactically standard, but has an
undefined
meaning.
KIND parameters are processor dependent, and do NOT mean the size in
bytes,
words or anything else. On a VAX or Alpha, and potentially on IBM
and Intel
systems in the future, you could have several different floating-
point types
of the same length. Currently, not all compilers use the same
conventions,
even on the same system.
The correct way to do it is to have a module that defines a suitable
parameter, include that module everywhere, and use that parameter. For
example:
MODULE double
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12)
END MODULE double
Include 'USE double' at the start of every procedure and module, and
then
use 1.23_DP.
Regards,
Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email: n...@cam.ac.uk
Tel.: +44 1223 334761 Fax: +44 1223 334679
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
--
Jeff Squyres
Cisco Systems