The Pentium-class machines (and perhaps 486's although I don't have information about them) need to have variables aligned in memory on the proper boundaries in order to get maximum execution speed. Failure to do so can slow down your code by at least 30 percent and perhaps even more.
Here is some information on how to achieve proper alignment with your compiler. Suggestions are welcome!
-malign-double (expecially on P6's) [ only for g77 < 0.5.25 ] -funroll-loops (or -funroll-all-loops) -fomit-frame-pointerThese instructions should also apply to NAG F90, since it also uses gcc for the final compilation. Note that the statement about -malign-double only applies to older g77 versions (thanks to Craig Burley for pointing this out).
You can follow a more detailed discussion about these points by looking at messages in the HEP-PC mailing-list archive dated between 11 March and 14 March of 1997 (subjects "does anyone understand this", "more on things not understood", and "things are now (somewhat) understood".)
Any info on gcc, portland group compiler, or SNI F77 is welcome.