Shell-model project
- Write small modules (routines/functions) ; avoid big functions that do everything. (But not too small.)
- Use Unit tests! Write lots of error traps, even for things that are `obvious.'
- Document as you go along. The Unit tests serve as documentation. For each function write a header that includes:
- Main purpose of function and/or unit test
- names and brief explanation of input variables, if any
- names and brief explanation of output variables, if any
- functions called by this function
- called by which functions