ddaslv.f 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. *DECK DDASLV
  2. SUBROUTINE DDASLV (NEQ, DELTA, WM, IWM)
  3. C***BEGIN PROLOGUE DDASLV
  4. C***SUBSIDIARY
  5. C***PURPOSE Linear system solver for DDASSL.
  6. C***LIBRARY SLATEC (DASSL)
  7. C***TYPE DOUBLE PRECISION (SDASLV-S, DDASLV-D)
  8. C***AUTHOR Petzold, Linda R., (LLNL)
  9. C***DESCRIPTION
  10. C-----------------------------------------------------------------------
  11. C THIS ROUTINE MANAGES THE SOLUTION OF THE LINEAR
  12. C SYSTEM ARISING IN THE NEWTON ITERATION.
  13. C MATRICES AND REAL TEMPORARY STORAGE AND
  14. C REAL INFORMATION ARE STORED IN THE ARRAY WM.
  15. C INTEGER MATRIX INFORMATION IS STORED IN
  16. C THE ARRAY IWM.
  17. C FOR A DENSE MATRIX, THE LINPACK ROUTINE
  18. C DGESL IS CALLED.
  19. C FOR A BANDED MATRIX,THE LINPACK ROUTINE
  20. C DGBSL IS CALLED.
  21. C-----------------------------------------------------------------------
  22. C***ROUTINES CALLED DGBSL, DGESL
  23. C***REVISION HISTORY (YYMMDD)
  24. C 830315 DATE WRITTEN
  25. C 901009 Finished conversion to SLATEC 4.0 format (F.N.Fritsch)
  26. C 901019 Merged changes made by C. Ulrich with SLATEC 4.0 format.
  27. C 901026 Added explicit declarations for all variables and minor
  28. C cosmetic changes to prologue. (FNF)
  29. C***END PROLOGUE DDASLV
  30. C
  31. INTEGER NEQ, IWM(*)
  32. DOUBLE PRECISION DELTA(*), WM(*)
  33. C
  34. EXTERNAL DGBSL, DGESL
  35. C
  36. INTEGER LIPVT, LML, LMU, LMTYPE, MEBAND, MTYPE, NPD
  37. PARAMETER (NPD=1)
  38. PARAMETER (LML=1)
  39. PARAMETER (LMU=2)
  40. PARAMETER (LMTYPE=4)
  41. PARAMETER (LIPVT=21)
  42. C
  43. C***FIRST EXECUTABLE STATEMENT DDASLV
  44. MTYPE=IWM(LMTYPE)
  45. GO TO(100,100,300,400,400),MTYPE
  46. C
  47. C DENSE MATRIX
  48. 100 CALL DGESL(WM(NPD),NEQ,NEQ,IWM(LIPVT),DELTA,0)
  49. RETURN
  50. C
  51. C DUMMY SECTION FOR MTYPE=3
  52. 300 CONTINUE
  53. RETURN
  54. C
  55. C BANDED MATRIX
  56. 400 MEBAND=2*IWM(LML)+IWM(LMU)+1
  57. CALL DGBSL(WM(NPD),MEBAND,NEQ,IWM(LML),
  58. * IWM(LMU),IWM(LIPVT),DELTA,0)
  59. RETURN
  60. C------END OF SUBROUTINE DDASLV------
  61. END