The GNU Fortran language includes a number of features that are
part of Fortran 90, even when the -ff90 option is not specified.
The features enabled by -ff90 are intended to be those that,
when -ff90 is not specified, would have another
meaning to g77--usually meaning something invalid in the
GNU Fortran language.
So, the purpose of -ff90 is not to specify whether g77 is
to gratuitously reject Fortran 90 constructs.
The -pedantic option specified with -fno-f90 is intended
to do that, although its implementation is certainly incomplete at
this point.
When -ff90 is specified:
REAL(expr) and AIMAG(expr),
where expr is COMPLEX type,
is the same type as the real part of expr.
For example, assuming Z is type COMPLEX(KIND=2),
REAL(Z) would return a value of type REAL(KIND=2),
not of type REAL(KIND=1), since -ff90 is specified.