How to write software tools in Fortran. Demonstrates good programming style with programs and routines that illustrate important design principles and methods. Includes many real, working programs--these programs are documented and tested, and they are portable. The style is pragmatic and informal, with brief discussions of the theory behind several advanced programming techniques. Shows how to systematically subdivide a large problem into smaller ones that are easier to solve, and how to design Fortran programs around data structures. Also contains in-depth discussions of file I/O and character data processing in Fortran, hash tables, lexical analyzers, compilers, and machine instruction sets.