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

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