PROGRAM d11r5(input,output); (* driver for routine BALANC *) CONST np=5; TYPE glnp = ARRAY [1..np] OF real; glnpnp = ARRAY [1..np,1..np] OF real; VAR i,j : integer; a : glnpnp; c,r : glnp; (*$I MODFILE.PAS *) (*$I BALANC.PAS *) BEGIN a[1,1] := 1.0; a[1,2] := 100.0; a[1,3] := 1.0; a[1,4] := 100.0; a[1,5] := 1.0; a[2,1] := 1.0; a[2,2] := 1.0; a[2,3] := 1.0; a[2,4] := 1.0; a[2,5] := 1.0; a[3,1] := 1.0; a[3,2] := 100.0; a[3,3] := 1.0; a[3,4] := 100.0; a[3,5] := 1.0; a[4,1] := 1.0; a[4,2] := 1.0; a[4,3] := 1.0; a[4,4] := 1.0; a[4,5] := 1.0; a[5,1] := 1.0; a[5,2] := 100.0; a[5,3] := 1.0; a[5,4] := 100.0; a[5,5] := 1.0; (* write norms *) FOR i := 1 to np DO BEGIN r[i] := 0.0; c[i] := 0.0; FOR j := 1 to np DO BEGIN r[i] := r[i]+abs(a[i,j]); c[i] := c[i]+abs(a[j,i]) END END; writeln('rows:'); FOR i := 1 to np DO write(r[i]:12:2); writeln; writeln('columns:'); FOR i := 1 to np DO write(c[i]:12:2); writeln; writeln; writeln('***** balancing matrix *****'); writeln; balanc(a,np); (* write norms *) FOR i := 1 to np DO BEGIN r[i] := 0.0; c[i] := 0.0; FOR j := 1 to np DO BEGIN r[i] := r[i]+abs(a[i,j]); c[i] := c[i]+abs(a[j,i]) END END; writeln('rows:'); FOR i := 1 to np DO write(r[i]:12:2); writeln; writeln('columns:'); FOR i := 1 to np DO write(c[i]:12:2); writeln END.