home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE RCUT
- C
- C PURPOSE
- C PARTITION A MATRIX BETWEEN SPECIFIED ROWS TO FORM TWO
- C RESULTANT MATRICES
- C
- C USAGE
- C CALL RCUT (A,L,R,S,N,M,MS)
- C
- C DESCRIPTION OF PARAMETERS
- C A - NAME OF INPUT MATRIX
- C L - ROW OF A ABOVE WHICH PARTITIONING TAKES PLACE
- C R - NAME OF MATRIX TO BE FORMED FROM UPPER PORTION OF A
- C S - NAME OF MATRIX TO BE FORMED FROM LOWER PORTION OF A
- C N - NUMBER OF ROWS IN A
- C M - NUMBER OF COLUMNS IN A
- C MS - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A
- C 0 - GENERAL
- C 1 - SYMMETRIC
- C 2 - DIAGONAL
- C
- C REMARKS
- C MATRIX R CANNOT BE IN SAME LOCATION AS MATRIX A
- C MATRIX S CANNOT BE IN SAME LOCATION AS MATRIX A
- C MATRIX R CANNOT BE IN SAME LOCATION AS MATRIX S
- C MATRIX R AND MATRIX S ARE ALWAYS GENERAL MATRICES
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C LOC
- C
- C METHOD
- C ELEMENTS OF MATRIX A ABOVE ROW L ARE MOVED TO FORM MATRIX R
- C OF L-1 ROWS AND M COLUMNS. ELEMENTS OF MATRIX A IN ROW L
- C AND BELOW ARE MOVED TO FORM MATRIX S OF N-L+1 ROWS AND M
- C COLUMNS
- C
- C ..................................................................
- C
- SUBROUTINE RCUT(A,L,R,S,N,M,MS)
- DIMENSION A(1),R(1),S(1)
- C
- IR=0
- IS=0
- DO 70 J=1,M
- DO 70 I=1,N
- C
- C FIND LOCATION IN OUTPUT MATRIX AND SET TO ZERO
- C
- IF(I-L) 20,10,10
- 10 IS=IS+1
- S(IS)=0.0
- GO TO 30
- 20 IR=IR+1
- R(IR)=0.0
- C
- C LOCATE ELEMENT FOR ANY MATRIX STORAGE MODE
- C
- 30 CALL LOC(I,J,IJ,N,M,MS)
- C
- C TEST FOR ZERO ELEMENT IN DIAGONAL MATRIX
- C
- IF(IJ) 40,70,40
- C
- C DETERMINE WHETHER ABOVE OR BELOW L
- C
- 40 IF(I-L) 60,50,50
- 50 S(IS)=A(IJ)
- GO TO 70
- 60 R(IR)=A(IJ)
- 70 CONTINUE
- RETURN
- END