PROGRAM TESTM1 C C PROGRAM TO TEST THE FOLLOWING ROUTINES ON MATLIB C IDENT, MADD, MCLR, MCOM, MMOV, MSCL, MSUB C (ALL ARE SINGLE PRECISON ROUTINES) REAL A(4,5),B(4,5),C(4,5),P,Q REAL X(3,3),D(3,3),E(3,3) DATA P,Q /5.,2./ DO 10 J=1,5 DO 5 I=1,4 K=K+1 A(I,J) = K 5 B(I,J) = 2*K 10 CONTINUE TYPE *,' SINGLE PRECISION MATRIX ROUTINES' TYPE 20,((A(I,J),J=1,5),I=1,4), 1 ((B(I,J),J=1,5),I=1,4),P,Q 20 FORMAT(' A',/,4(5F8.0/),/' B'/,4(5F8.0/),/' P='F8.0,' Q='F8.0) C TYPE *,' PARTIAL MATRIX OPERATIONS' C CALL MPADD(C,A,B,3,4,4,4,4) TYPE *,' MPADD' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MPCLR(C,3,4,4) TYPE *,' MPCLR' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MPCOM(C,P,A,Q,B,3,4,4,4,4) TYPE *,' MPCOM' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MPMOV(C,A,3,4,4,4) TYPE *,' MPMOV' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MPSCL(C,P,A,3,4,4,4) TYPE *,' MPSCL' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MPSUB(C,A,B,3,4,4,4,4) TYPE *,' MSUB' TYPE 901,((C(I,J),J=1,5),I=1,4) C DO 26 J=1,5 DO 25 I=1,4 25 C(I,J) = 0. 26 CONTINUE C TYPE *,'FULL MATRIX OPERATIONS' C CALL MADD(C,A,B,4,5) TYPE *,' MADD' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MCLR(C,4,5) TYPE *,' MCLR' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MCOM(C,P,A,Q,B,4,5) TYPE *,' MCOM' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MMOV(C,A,4,5) TYPE *,' MMOV' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MSCL(C,P,A,4,5) TYPE *,' MSCL' TYPE 901,((C(I,J),J=1,5),I=1,4) CALL MSUB(C,A,B,4,5) TYPE *,' MSUB' TYPE 901,((C(I,J),J=1,5),I=1,4) C K=0 DO 50 J=1,3 DO 40 I=1,3 K =K+1 D(I,J) = K 40 E(I,J) = 2*K 50 CONTINUE C TYPE *,' 3X3 MATRIX OPERATIONS' TYPE 60,((D(I,J),J=1,3),I=1,3),((E(I,J),J=1,3),I=1,3) 60 FORMAT(' D',/,3(3F8.0/),/,' E',/,3(3F8.0/)) CALL M3ADD(X,D,E) TYPE *,' M3ADD' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL M3CLR(X) TYPE *,' M3CLR' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL M3COM(X,P,D,Q,E) TYPE *,' M3COM' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL M3MOV(X,D) TYPE *,' M3MOV' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL M3SCL(X,P,D) TYPE *,' M3SCL' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL M3SUB(X,D,E) TYPE *,' M3SUB' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL IDENT(X,2,3) TYPE *,' IDENT' TYPE 902,((X(I,J),J=1,3),I=1,3) CALL IDENT(X,3,3) TYPE *,' IDENT' TYPE 902,((X(I,J),J=1,3),I=1,3) 901 FORMAT(4(5F8.0/)) 902 FORMAT(3(3F8.0,/)) STOP END