g77 doesn't allow a common block and an external procedure or
BLOCK DATA to have the same name.
Some systems allow this, but g77 does not,
to be compatible with f2c.
g77 could special-case the way it handles
BLOCK DATA, since it is not compatible with f2c in this
particular area (necessarily, since g77 offers an
important feature here), but
it is likely that such special-casing would be very annoying to people
with programs that use `EXTERNAL FOO', with no other mention of
`FOO' in the same program unit, to refer to external procedures, since
the result would be that g77 would treat these references as requests to
force-load BLOCK DATA program units.
In that case, if g77 modified
BLOCK DATA so they could have the same names as
would find that their programs wouldn't link because the `FOO' procedure
didn't have its name translated the same way.
g77 could emit a null-but-externally-satisfying definition of
`FOO' with its name transformed as if it had been a
BLOCK DATA, but that probably invites more trouble than it's