ION TOL,
SAVE , A, B, BIGA
IF (TOL. LT.0. D0) GOTO 100
IF (N. LE.0) GOTO 100 = 0 =-N = JJ = N +1
DO 50 J = 1, N = J +1 = JJ + NY = 0. D0 = JJ-J
DO 10 I = J, N = IT + I
IF (DABS (BIGA). GE. DABS (A (IXJ))) GOTO 10 = A (IXJ) = I
CONTINUE
IF (DABS (BIGA). LT. TOL) GOTO 95 = JJ-N = IMAX-J
DO 20 I = J, N = IXJ + N = IXJ + IT
SAVE = A (IXJ) (IXJ) = A (IXJX) (IXJX) = SAVE (IXJ) = A (IXJ)/BIGA
CONTINUE
SAVE = B (IMAX) (IMAX) = B (J) (J) = SAVE /BIGA
IF (J. EQ. ​​N) GOTO 60 = IQS + N
DO 40 IXJ = JY, N = IQS + IXJ
SAVE = A (IXJX) = J-IXJ
DO 30 I = JY, N = IXJX + N (IXJX) = A (IXJX) - SAVE * A (IXJX + IT)
CONTINUE (IXJ) = B (IXJ) - (B (J) * SAVE b> )
CONTINUE
CONTINUE
NY = N-1 = N * N = 0
IF (J. EQ. ​​NY) GOTO 90 = J +1 = IT-J = N = IXJ-J
DO 80 I = 1, J (JY) = B (JY) - A (IXJX) * B (IXJ) = IXJX -N = IXJ-1
CONTINUE
GOTO 70
CONTINUE
RETURN
CONTINUE = 1
GOTO 90
CONTINUE = 2
GOTO 90
END SUBROUTINE DSIMQLL
program DSIMQLT
implicit none
DOUBLE PRECISION A (3,3), B (3), TOL
INTEGER N, IER, J, I = 3 (1,1) = -2 (1,2) = 3 (1 , 3) = 4 (2,1) = 1 (2,2) = 5 (2,3) = 7 (3,1) = 4 (3,2) = 2 (3,3) = 1 (1) = 21 (2) = -3 (3) = -5
write (*, *) 'Matrix'
DO 1 I = 1,3
DO 2 J = 1,3
write (*, *)'', A (I, J)
CONTINUE
CONTINUE
DO 4 J = 1,3
write (*, *) '', B (J)
CONTINUE
CALL DSIMQLL (A, B, N, TOL, IER)
write (*, *) 'Reshenie'
DO 3 J = 1,3
write (*, *) '', B (J)
CONTINUE
end program DSIMQLT
Результат:
В
До...