Directory of image this file is from
This file as a plain text file
C
C ..................................................................
C
C SUBROUTINE CCUT
C
C PURPOSE
C PARTITION A MATRIX BETWEEN SPECIFIED COLUMNS TO FORM TWO
C RESULTANT MATRICES
C
C USAGE
C CALL CCUT (A,L,R,S,N,M,MS)
C
C DESCRIPTION OF PARAMETERS
C A - NAME OF INPUT MATRIX
C L - COLUMN OF A TO THE LEFT OF WHICH PARTITIONING TAKES
C PLACE
C R - NAME OF MATRIX TO BE FORMED FROM LEFT PORTION OF A
C S - NAME OF MATRIX TO BE FORMED FROM RIGHT 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 TO THE LEFT OF COLUMN L ARE MOVED TO
C FORM MATRIX R OF N ROWS AND L-1 COLUMNS. ELEMENTS OF
C MATRIX A IN COLUMN L AND TO THE RIGHT OF L ARE MOVED TO FORM
C MATRIX S OF N ROWS AND M-L+1 COLUMNS.
C
C ..................................................................
C
SUBROUTINE CCUT(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(J-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 RIGHT OR LEFT OF L
C
40 IF(J-L) 60,50,50
50 S(IS)=A(IJ)
GO TO 70
60 R(IR)=A(IJ)
70 CONTINUE
RETURN
END