dslui.f 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. *DECK DSLUI
  2. SUBROUTINE DSLUI (N, B, X, NELT, IA, JA, A, ISYM, RWORK, IWORK)
  3. C***BEGIN PROLOGUE DSLUI
  4. C***PURPOSE SLAP MSOLVE for LDU Factorization.
  5. C This routine acts as an interface between the SLAP generic
  6. C MSOLVE calling convention and the routine that actually
  7. C -1
  8. C computes (LDU) B = X.
  9. C***LIBRARY SLATEC (SLAP)
  10. C***CATEGORY D2E
  11. C***TYPE DOUBLE PRECISION (SSLUI-S, DSLUI-D)
  12. C***KEYWORDS ITERATIVE PRECONDITION, NON-SYMMETRIC LINEAR SYSTEM SOLVE,
  13. C SLAP, SPARSE
  14. C***AUTHOR Greenbaum, Anne, (Courant Institute)
  15. C Seager, Mark K., (LLNL)
  16. C Lawrence Livermore National Laboratory
  17. C PO BOX 808, L-60
  18. C Livermore, CA 94550 (510) 423-3141
  19. C seager@llnl.gov
  20. C***DESCRIPTION
  21. C It is assumed that RWORK and IWORK have initialized with
  22. C the information required for DSLUI2:
  23. C IWORK(1) = Starting location of IL in IWORK.
  24. C IWORK(2) = Starting location of JL in IWORK.
  25. C IWORK(3) = Starting location of IU in IWORK.
  26. C IWORK(4) = Starting location of JU in IWORK.
  27. C IWORK(5) = Starting location of L in RWORK.
  28. C IWORK(6) = Starting location of DINV in RWORK.
  29. C IWORK(7) = Starting location of U in RWORK.
  30. C See the DESCRIPTION of DSLUI2 for details.
  31. C***REFERENCES (NONE)
  32. C***ROUTINES CALLED DSLUI2
  33. C***REVISION HISTORY (YYMMDD)
  34. C 871119 DATE WRITTEN
  35. C 881213 Previous REVISION DATE
  36. C 890915 Made changes requested at July 1989 CML Meeting. (MKS)
  37. C 890922 Numerous changes to prologue to make closer to SLATEC
  38. C standard. (FNF)
  39. C 890929 Numerous changes to reduce SP/DP differences. (FNF)
  40. C 910411 Prologue converted to Version 4.0 format. (BAB)
  41. C 920511 Added complete declaration section. (WRB)
  42. C 921113 Corrected C***CATEGORY line. (FNF)
  43. C 930701 Updated CATEGORY section. (FNF, WRB)
  44. C***END PROLOGUE DSLUI
  45. C .. Scalar Arguments ..
  46. INTEGER ISYM, N, NELT
  47. C .. Array Arguments ..
  48. DOUBLE PRECISION A(NELT), B(N), RWORK(*), X(N)
  49. INTEGER IA(NELT), IWORK(10), JA(NELT)
  50. C .. Local Scalars ..
  51. INTEGER LOCDIN, LOCIL, LOCIU, LOCJL, LOCJU, LOCL, LOCU
  52. C .. External Subroutines ..
  53. EXTERNAL DSLUI2
  54. C***FIRST EXECUTABLE STATEMENT DSLUI
  55. C
  56. C Pull out the locations of the arrays holding the ILU
  57. C factorization.
  58. C
  59. LOCIL = IWORK(1)
  60. LOCJL = IWORK(2)
  61. LOCIU = IWORK(3)
  62. LOCJU = IWORK(4)
  63. LOCL = IWORK(5)
  64. LOCDIN = IWORK(6)
  65. LOCU = IWORK(7)
  66. C
  67. C Solve the system LUx = b
  68. CALL DSLUI2(N, B, X, IWORK(LOCIL), IWORK(LOCJL), RWORK(LOCL),
  69. $ RWORK(LOCDIN), IWORK(LOCIU), IWORK(LOCJU), RWORK(LOCU) )
  70. C
  71. RETURN
  72. C------------- LAST LINE OF DSLUI FOLLOWS ----------------------------
  73. END