Debugging hints |
It has been estimated that about 90% of the time it takes
to develop commercial software is spent debugging and testing. This shows how
important it is to write good code in the first place.
A D V E R T I S E M E N T
Still, we all discover bugs from time to time. Here are
some hints for how to track them down.
Useful compiler options
Most Fortran compilers will have a set of options you can
turn on if you like. The following compiler options are specific to the Sun
Fortran 77 compiler, but most compilers will have similar options (although the
letters may be different).
-ansi This will warn you about all non-standard
Fortran 77 extensions in your program.
-u This will override the implicit type rules and make
all variables undeclared initially. If your compiler
does not have such an option, you can
achieve almost the same thing by adding the declaration
implicit none (a-z) in the beginning of
each (sub-)program.
-C Check for array bounds. The compiler will try to
detect if you access array elements that are out
of bounds. It cannot catch all
such errors, however.
Some common errors
Here are some common errors to watch out for:
Make sure your lines end at column 72. The rest will be
ignored!
Have you done integer division when you wanted real
division?
Do your parameter lists in the calling and the called
program match?
Do your common blocks match?
Debugging tools
If you have a bug, you have to
try to locate it. Syntax errors are easy to find. The problem is when you have
run-time errors. The old-fashioned way to find errors is to add write
statements in your code and try to track the values of your variables. This is a
bit tedious since you have to recompile your source code every time you change
the program slightly. Today one can use special debuggers which is a
convenient tool. You can step through a program line by line or define your own
break points, you can display the values of the variables you want to monitor,
and much more.