As a portable Fortran implementation,
g77
offers its users direct access to,
and otherwise depends upon,
the underlying facilities of the system
used to build g77
,
the system on which g77
itself is used to compile programs,
and the system on which the g77
-compiled program is actually run.
(For most users, the three systems are of the same
type--combination of operating environment and hardware--often
the same physical system.)
The run-time environment for a particular system inevitably imposes some limits on a program's use of various system facilities. These limits vary from system to system.
Even when such limits might be well beyond the
possibility of being encountered on a particular system,
the g77
run-time environment
has certain built-in limits,
usually, but not always, stemming from intrinsics
with inherently limited interfaces.
Currently, the g77
run-time environment
does not generally offer a less-limiting environment
by augmenting the underlying system's own environment.
Therefore, code written in the GNU Fortran language, while syntactically and semantically portable, might nevertheless make non-portable assumptions about the run-time environment--assumptions that prove to be false for some particular environments.
The GNU Fortran language,
the g77
compiler and run-time environment,
and the g77
documentation
do not yet offer comprehensive portable work-arounds for such limits,
though programmers should be able to
find their own in specific instances.
Not all of the limitations are described in this document. Some of the known limitations include: