dwnlt3.f 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. *DECK DWNLT3
  2. SUBROUTINE DWNLT3 (I, IMAX, M, MDW, IPIVOT, H, W)
  3. C***BEGIN PROLOGUE DWNLT3
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to WNLIT
  6. C***LIBRARY SLATEC
  7. C***TYPE DOUBLE PRECISION (WNLT3-S, DWNLT3-D)
  8. C***AUTHOR Hanson, R. J., (SNLA)
  9. C Haskell, K. H., (SNLA)
  10. C***DESCRIPTION
  11. C
  12. C Perform column interchange.
  13. C Exchange elements of permuted index vector and perform column
  14. C interchanges.
  15. C
  16. C***SEE ALSO DWNLIT
  17. C***ROUTINES CALLED DSWAP
  18. C***REVISION HISTORY (YYMMDD)
  19. C 790701 DATE WRITTEN
  20. C 890620 Code extracted from WNLIT and made a subroutine. (RWC))
  21. C 900604 DP version created from SP version. (RWC)
  22. C***END PROLOGUE DWNLT3
  23. INTEGER I, IMAX, IPIVOT(*), M, MDW
  24. DOUBLE PRECISION H(*), W(MDW,*)
  25. C
  26. EXTERNAL DSWAP
  27. C
  28. DOUBLE PRECISION T
  29. INTEGER ITEMP
  30. C
  31. C***FIRST EXECUTABLE STATEMENT DWNLT3
  32. IF (IMAX.NE.I) THEN
  33. ITEMP = IPIVOT(I)
  34. IPIVOT(I) = IPIVOT(IMAX)
  35. IPIVOT(IMAX) = ITEMP
  36. C
  37. CALL DSWAP(M, W(1,IMAX), 1, W(1,I), 1)
  38. C
  39. T = H(IMAX)
  40. H(IMAX) = H(I)
  41. H(I) = T
  42. ENDIF
  43. RETURN
  44. END