Although the FORTRAN 77 standard prohibits aliasing arguments, the Sun Performance Library allows the programmer to alias two or more arguments as long as all aliased arguments have the same base type and one of the arguments being aliased is not an argument into which the subroutine will write a result. A real variable and a complex variable have the same base type (real), while a real variable and a double precision variable have different base types. Aliasing arguments having different base types or aliasing any argument with a result argument will produce undefined results at best unless the aliased arguments are not used. For example, the argument DET in the subroutine DGEDI will not be used if the argument JOB has the value 1, so DET could be aliased to any other argument of any other type. If you violate the rules about aliasing then the results are undefined, and it is not even guaranteed that these undefined results will be the same from one run to the next.