c the modified code from c http://iris.gmu.edu/~snash/nash/software/NMS__double/nms__double.html C SAMPLE PROGRAM FOR DGEFS C c EBR: I have modified the call from dgefs to decomp and solve c INTEGER LDA PARAMETER (LDA=10) DOUBLE PRECISION A(LDA,LDA), B(LDA), WORK(LDA), RCOND INTEGER IWORK(LDA), I, J, N, ITASK, IND C C SET UP PROBLEM C N = 3 ITASK = 1 A(1,1) = 10.0D0 A(2,1) = -3.0D0 A(3,1) = 5.0D0 A(1,2) = -7.0D0 A(2,2) = 2.0D0 A(3,2) = -1.0D0 A(1,3) = 0.0D0 A(2,3) = 6.0D0 A(3,3) = 5.0D0 B(1) = 7.0D0 B(2) = 4.0D0 B(3) = 6.0D0 C C PRINT PROBLEM INFORMATION C WRITE (*,*) ' COEFFICIENT MATRIX =' DO 10 I = 1,N WRITE (*,800) (A(I,J), J = 1,N) 10 CONTINUE WRITE (*,*) ' RIGHT-HAND SIDE =' WRITE (*,800) (B(J), J = 1,N) C C SOLVE LINEAR SYSTEM C CALL DECOMP (LDA, N, A, RCOND, IWORK, WORK) WRITE (*,*) WRITE (*,*) 'DECOMP RESULTS' WRITE (*,*) 'COND IS ', RCOND IF (RCOND + 1.0 . EQ. RCOND) THEN WRITE (*,*) 'THE MATRIX IS DEGENERATED' STOP END IF CALL SOLVE (LDA, N, A, B, IWORK) C C PRINT RESULTS C WRITE (*,*) WRITE (*,*) 'SOLVE RESULTS' WRITE (*,*) ' SOLUTION =' WRITE (*,800) (B(J), J = 1,N) C WRITE (*,*) WRITE (*,*) 'REFERENCE RESULTS FROM IBM PC/AT ' WRITE (*,*) ' SOLUTION =' WRITE (*,*) ' 0.000000000000E+00 -0.100000000000E+01', *' 0.100000000000E+01' C STOP 800 FORMAT (4X, D20.12, 4X, D20.12, 4X, D20.12) END