bksol.f 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. *DECK BKSOL
  2. SUBROUTINE BKSOL (N, A, X)
  3. C***BEGIN PROLOGUE BKSOL
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to BVSUP
  6. C***LIBRARY SLATEC
  7. C***TYPE SINGLE PRECISION (BKSOL-S, DBKSOL-D)
  8. C***AUTHOR Watts, H. A., (SNLA)
  9. C***DESCRIPTION
  10. C
  11. C **********************************************************************
  12. C Solution of an upper triangular linear system by
  13. C back-substitution
  14. C
  15. C The matrix A is assumed to be stored in a linear
  16. C array proceeding in a row-wise manner. The
  17. C vector X contains the given constant vector on input
  18. C and contains the solution on return.
  19. C The actual diagonal of A is unity while a diagonal
  20. C scaling matrix is stored there.
  21. C **********************************************************************
  22. C
  23. C***SEE ALSO BVSUP
  24. C***ROUTINES CALLED SDOT
  25. C***REVISION HISTORY (YYMMDD)
  26. C 750601 DATE WRITTEN
  27. C 891214 Prologue converted to Version 4.0 format. (BAB)
  28. C 900328 Added TYPE section. (WRB)
  29. C 910722 Updated AUTHOR section. (ALS)
  30. C***END PROLOGUE BKSOL
  31. C
  32. DIMENSION A(*),X(*)
  33. C
  34. C***FIRST EXECUTABLE STATEMENT BKSOL
  35. M=(N*(N+1))/2
  36. X(N)=X(N)*A(M)
  37. IF (N .EQ. 1) GO TO 20
  38. NM1=N-1
  39. DO 10 K=1,NM1
  40. J=N-K
  41. M=M-K-1
  42. 10 X(J)=X(J)*A(M) - SDOT(K,A(M+1),1,X(J+1),1)
  43. C
  44. 20 RETURN
  45. END