Scientific equations embedded in computer programs must obey the rules for dimensional consistency. Many efforts have been made to enforce these rules within computer programs. Some methods require the user to modify the program by adding dimensional information either as extensions to the programming language or else by using existing language facilities. The large amount of effort required to modify large scientific and engineering programs in this way is usually uneconomic and can be prone to error if done manually. Consequently, methods that do not require modifications to the program have been developed. However, these methods are limited in what they can discover and find it hard to tell the user where, precisely, in his program the error has been made. This paper describes a novel approach which employs the concept of symbol lives to analyse the dimensional implications of the users source code. The method, implemented for Fortran programs in the software engineering toolkit, W...