-f is a legacy option flag equivalent to -aligncommon=16. Use of -aligncommon is preferred.
The default alignment of data in COMMON blocks is on 4-byte boundaries. -f changes the data layout of double- and quad-precision data in COMMON blocks and EQUIVALENCE classes to be placed in memory along their “natural” alignment, which is on 8-byte boundaries (or on 16-byte boundaries for quad-precision when compiling for 64-bit SPARC environments with -m64).
-f may result in nonstandard alignment of data, which could cause problems with variables in EQUIVALENCE or COMMON and may render the program non-portable if -f is required.
Compiling any part of a program with -f requires compiling all subprograms of that program with -f.
By itself, this option does not enable the compiler to generate faster multi-word fetch/store instructions on double and quad precision data. The -dalign option does this and invokes -f as well. Use of -dalign is preferred over the older -f. See 3.4.13 –dalign. Because -dalign is part of the -fast option, so is -f.