Node: Ugly Assumed-Size Arrays, Next: Ugly Null Arguments, Previous: Ugly Implicit Argument Conversion, Up: Distensions
The -fugly-assumed option enables
the treatment of any array with a final dimension specified as 1
as an assumed-size array, as if * had been specified
instead.
For example, DIMENSION X(1) is treated as if it
had read DIMENSION X(*) if X is listed as
a dummy argument in a preceding SUBROUTINE, FUNCTION,
or ENTRY statement in the same program unit.
Use an explicit lower bound to avoid this interpretation.
For example, DIMENSION X(1:1) is never treated as if
it had read DIMENSION X(*) or DIMENSION X(1:*).
Nor is DIMENSION X(2-1) affected by this option,
since that kind of expression is unlikely to have been
intended to designate an assumed-size array.
This option is used to prevent warnings being issued about apparent
out-of-bounds reference such as X(2) = 99.
It also prevents the array from being used in contexts that
disallow assumed-size arrays, such as PRINT *,X.
In such cases, a diagnostic is generated and the source file is
not compiled.
The construct affected by this option is used only in old code that pre-exists the widespread acceptance of adjustable and assumed-size arrays in the Fortran community.
Note: This option does not affect how DIMENSION X(1) is
treated if X is listed as a dummy argument only
after the DIMENSION statement (presumably in
an ENTRY statement).
For example, -fugly-assumed has no effect on the
following program unit:
SUBROUTINE X
REAL A(1)
RETURN
ENTRY Y(A)
PRINT *, A
END