Node: Intrinsic Groups, Next: Other Intrinsics, Up: Compiler Intrinsics
A given specific intrinsic belongs in one or more groups. Each group is deleted, disabled, hidden, or enabled by default or a command-line option. The meaning of each term follows.
INTRINSICstatement) are disallowed through that group.
The distinction between deleting and disabling a group is illustrated
by the following example.
FOO belongs only to group
FGR is deleted, the following program unit will
successfully compile, because
FOO() will be seen as a
reference to an external function named
PRINT *, FOO() END
FGR is disabled, compiling the above program will produce
diagnostics, either because the
FOO intrinsic is improperly invoked
or, if properly invoked, it is not enabled.
To change the above program so it references an external function
instead of the disabled
add the following line to the top:
So, deleting a group tells
g77 to pretend as though the intrinsics in
that group do not exist at all, whereas disabling it tells
recognize them as (disabled) intrinsics in intrinsic-like contexts.
Hiding a group is like enabling it, but the intrinsic must be first
named in an
INTRINSIC statement to be considered a reference to the
intrinsic rather than to an external procedure.
This might be the "safest" way to treat a new group of intrinsics
when compiling old
code, because it allows the old code to be generally written as if
those new intrinsics never existed, but to be changed to use them
INTRINSIC statements in the appropriate places.
However, it should be the goal of development to use
for all names of external procedures that might be intrinsic names.
If an intrinsic is in more than one group, it is enabled if any of its
containing groups are enabled; if not so enabled, it is hidden if
any of its containing groups are hidden; if not so hidden, it is disabled
if any of its containing groups are disabled; if not so disabled, it is
This extra complication is necessary because some intrinsics,
IBITS, belong to more than one group, and hence should be
enabled if any of the groups to which they belong are enabled, and so
The groups are:
BTEST, and so on).
ERF, and so on).