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


Reply via email to