Node: Increasing Precision/Range, Next: Enabling Debug Lines, Previous: Support for Threads, Up: Missing Features
Some compilers, such as f2c
, have an option (-r8
,
-qrealsize=8
or
similar) that provides automatic treatment of REAL
entities such that they have twice the storage size, and
a corresponding increase in the range and precision, of what
would normally be the REAL(KIND=1)
(default REAL
) type.
(This affects COMPLEX
the same way.)
They also typically offer another option (-i8
) to increase
INTEGER
entities so they are twice as large
(with roughly twice as much range).
(There are potential pitfalls in using these options.)
g77
does not yet offer any option that performs these
kinds of transformations.
Part of the problem is the lack of detailed specifications regarding
exactly how these options affect the interpretation of constants,
intrinsics, and so on.
Until g77
addresses this need, programmers could improve
the portability of their code by modifying it to not require
compile-time options to produce correct results.
Some free tools are available which may help, specifically
in Toolpack (which one would expect to be sound) and the fortran
section of the Netlib repository.
Use of preprocessors can provide a fairly portable means to work around the lack of widely portable methods in the Fortran language itself (though increasing acceptance of Fortran 90 would alleviate this problem).