All files must have a header including:
Program or file purpose or function
Revision history and authors of revisions
Special requirements or constraints for running the code such as system it can run on, other systems that must be set up, etc
Program functions must document:
Function parameter list with descriptions and purpose
Dependancies the function requires
Global variables the function modifies.