dsmmti.f 2.8 KB

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