File: MACHK2.FT of Tape: Various/ETH/eth11-1
(Source file text) 

C	MACHK2.FTN - SAMPLE PROGRAM (MATRICES) USING:
C  XCPY		- SUBMATRIX COPY
C  MCPY		- MATRIX COPY
C  TRPD		- TRANSPOSE PRODUCT
C  MATA		- TRANSPOSE PRODUCT
C  DCPY		- COPY DIAGONAL ELEMENTS
C  DCLA		- SET DIAGONAL ELEMENTS EQUAL TO A CONSTANT
C  CTIE		- ADJOIN MATRICES BY COLUMNS
C  RTIE		- ADJOIN MATRICES BY ROWS
C  CCUT		- PARTITION MATRICES BY COLUMNS
C  RCUT		- PARTITION MATRICES BY ROWS
C	MOST OF THE ROUTINES LISTED HERE CALL LOC - LOCATION CALCULATION
C
	DIMENSION A(4,4),R(3,3),B1(3,2),E(2,3),B2(3,2)
	DIMENSION BB(2,2),C(3),C2(2,2),R1(3)
	EQUIVALENCE (A,BB,R),(E,B1)
	DATA A/-1.,6.,7.,8.,-2.,0.,1.,2.,-3.,3.,4.,5.,-4.,-5.,-6.,-7./
	DATA R1/1.,2.,10./
C
C	OUTPUT CHANNEL = IOUT
	IOUT=2
C
	WRITE(IOUT,100) ((A(I,J),J=1,4),I=1,4)
100	FORMAT(//' ORIGINAL MATRIX'/(4F8.1))
	CALL XCPY(A,B1,2,2,3,2,4,4,0)
	WRITE(IOUT,101) ((B1(I,J),J=1,2),I=1,3)
101	FORMAT(//' 3X2 SUBMATRIX AT ELEMENT (2,3) USING XCPY'/(2F8.1))
	CALL MCPY(B1,B2,3,2,0)
	WRITE(IOUT,102) ((B2(I,J),J=1,2),I=1,3)
102	FORMAT(//' SAME MATRIX COPIED USING MCPY'/(2F8.1))
	CALL TPRD(B1,B2,BB,3,2,0,0,2)
	WRITE(IOUT,103) ((BB(I,J),J=1,2),I=1,2)
103	FORMAT(//' TRANSPOSE OF MATRIX TIMES MATRIX USING TPRD'/
	1 (2F8.1))
	CALL MATA(B1,C2,3,2,0)
	WRITE(IOUT,104) C2(1,1),C2(2,1),C2(2,1),C2(1,2)
104	FORMAT(//' SAME PRODUCT USING MATA'/(2F8.1))
	CALL DCPY(C2,C,2,1)
	WRITE(IOUT,105) C(1),C(2)
105	FORMAT(//' DIAGONAL ELEMENTS USING DCPY'/(F8.1))
	CALL DCLA(BB,2.,2,0)
	WRITE(IOUT,106) ((BB(I,J),J=1,2),I=1,2)
106	FORMAT(//' REPLACING DIAGONAL BY 2.0 USING DCLA'/(2F8.1))
	CALL CTIE(BB,C,E,2,2,0,0,1)
	WRITE(IOUT,107) ((E(I,J),J=1,3),I=1,2)
107	FORMAT(//' ADJOINING THESE TWO MATRICES USING CTIE'/(3F8.1))
	WRITE(IOUT,108) R1
108	FORMAT(//' TAKE THIS ROW VECTOR'/(3F8.1))
	CALL RTIE(E,R1,R,2,3,0,0,1)
	WRITE(IOUT,109)  ((R(I,J),J=1,3),I=1,3)
109	FORMAT(//' ADJOINING THESE TWO MATRICES USING RTIE'/(3F8.1))
	CALL CCUT(R,3,B1,C,3,3,0)
	WRITE(IOUT,110) ((B1(I,J),J=1,2),C(I),I=1,3)
110	FORMAT(//' PARTITIONING BETWEEN COLS. 2 AND 3 USING CCUT'/
	1 (2F8.1,12X,F8.1))
	CALL RCUT(B1,2,R1,C2,3,2,0)
	WRITE(IOUT,111) (R1(I),I=1,2),((C2(I,J),J=1,2),I=1,2)
111	FORMAT(//' PARTITIONING BETWEEN ROWS 1 AND 2 USING RCUT'/
	1 2F8.1//(2F8.1))
	STOP
	END