The variables marked with the "D" are decision variables. This is evident because they have index j3 equal to 1 and, by examining the index outputs, we see that for j3 the value 1 must be a decision. This output set assignment easily converts to a do-loop type iterative solution procedure such as: C READ DECISIONS AND TEARS READ (5,5000) Y 5000 FORMAT (10F8.0) 10 Do 20 IF=l,2 DO 20 11=1,2 DO 20 12=1,2 IF (IF .EQ. 1) X(I1,I2) = F(X,Y,I1,I2) IF (IF .EQ. 2) Y(I1,I2+1) = G(X,Y,I1,I2) 20 CONTINUE C CHECK CONVERGENCE If y not converged, go to 10 The convergence check would probably check the change in the torn variables y from iteration to iteration, convergence being defined as an arbitrarily small change in y. The functions "F" and "G" would be whatever f and g happen to be. Although these restrictions on the allowable output set assign- ments have been necessary to facilitate the writing of iterative solution procedures using do-loops, they do not weaken to any extent the solution procedure deriving power of the algorithms which operate under them. In fact these restrictions point the way, as it were, to the types of output set assignments engineers traditionally have employed. For example, in modeling a distillation column the material balance