home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / matops / ccut.for < prev    next >
Encoding:
Text File  |  1985-11-29  |  2.1 KB  |  77 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE CCUT
  5. C
  6. C        PURPOSE
  7. C           PARTITION A MATRIX BETWEEN SPECIFIED COLUMNS TO FORM TWO
  8. C           RESULTANT MATRICES
  9. C
  10. C        USAGE
  11. C           CALL CCUT (A,L,R,S,N,M,MS)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           A - NAME OF INPUT MATRIX
  15. C           L - COLUMN OF A TO THE LEFT OF WHICH PARTITIONING TAKES
  16. C               PLACE
  17. C           R - NAME OF MATRIX TO BE FORMED FROM LEFT PORTION OF A
  18. C           S - NAME OF MATRIX TO BE FORMED FROM RIGHT PORTION OF A
  19. C           N - NUMBER OF ROWS IN A
  20. C           M - NUMBER OF COLUMNS IN A
  21. C           MS  - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A
  22. C                  0 - GENERAL
  23. C                  1 - SYMMETRIC
  24. C                  2 - DIAGONAL
  25. C
  26. C        REMARKS
  27. C           MATRIX R CANNOT BE IN SAME LOCATION AS MATRIX A
  28. C           MATRIX S CANNOT BE IN SAME LOCATION AS MATRIX A
  29. C           MATRIX R CANNOT BE IN SAME LOCATION AS MATRIX S
  30. C           MATRIX R AND MATRIX S ARE ALWAYS GENERAL MATRICES
  31. C
  32. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  33. C           LOC
  34. C
  35. C        METHOD
  36. C           ELEMENTS OF MATRIX A TO THE LEFT OF COLUMN L ARE MOVED TO
  37. C           FORM MATRIX R OF N ROWS AND L-1 COLUMNS. ELEMENTS OF
  38. C           MATRIX A IN COLUMN L AND TO THE RIGHT OF L ARE MOVED TO FORM
  39. C           MATRIX S OF N ROWS AND M-L+1 COLUMNS.
  40. C
  41. C     ..................................................................
  42. C
  43.       SUBROUTINE CCUT(A,L,R,S,N,M,MS)
  44.       DIMENSION A(1),R(1),S(1)
  45. C
  46.       IR=0
  47.       IS=0
  48.       DO 70 J=1,M
  49.       DO 70 I=1,N
  50. C
  51. C        FIND LOCATION IN OUTPUT MATRIX AND SET TO ZERO
  52. C
  53.       IF(J-L) 20,10,10
  54.    10 IS=IS+1
  55.       S(IS)=0.0
  56.       GO TO 30
  57.    20 IR=IR+1
  58.       R(IR)=0.0
  59. C
  60. C        LOCATE ELEMENT FOR ANY MATRIX STORAGE MODE
  61. C
  62.    30 CALL LOC(I,J,IJ,N,M,MS)
  63. C
  64. C        TEST FOR ZERO ELEMENT IN DIAGONAL MATRIX
  65. C
  66.       IF(IJ) 40,70,40
  67. C
  68. C        DETERMINE WHETHER RIGHT OR LEFT OF L
  69. C
  70.    40 IF(J-L) 60,50,50
  71.    50 S(IS)=A(IJ)
  72.       GO TO 70
  73.    60 R(IR)=A(IJ)
  74.    70 CONTINUE
  75.       RETURN
  76.       END
  77.