Note that Mortran, like many preprocessors, does not make a complete analysis of the Fortran source and, like many preprocessors, may not always make its assumptions/requirements explicit. Consider, for example, Mortran multiple assignment. From the Mortran User Guide:
/ I, A(I,K), J / = SQRT(X/2.0);
produces the following FORTRAN statements:
I = SQRT(X/2.0)
A(I,K) = SQRT(X/2.0)
J = SQRT(X/2.0)
In this example, the produced Fortran implements the multiple assignment correctly only if X is not aliased to I or to A(I,K), assuming the multiple assignment semantics are left to right.