      SUBROUTINE MATMPY(M1,M2,M3,L,M,N,JL,JM,JN,ICODE)                          
C                                                                       00852**2
C   NAME           MATMPY                                               00853**2
C                                                                       00854**2
C   PURPOSE        TO COMPUTE THE PRODUCT OF TWO MATRICES IN ANY        00855**2
C                  ALLOWABLE TRANSPOSE COMBINATION AS FOLLOWS:          00856**2
C                                                                       00857**2
C                      OPTION ICODE             PRODUCT M3              00858**2
C                                                                       00859**2
C                            1                    M1*M2                 00860**2
C                            2                  (M1)T*M2                00861**2
C                            3                  M1*(M2)T                00862**2
C                            4                  (M1)T*(M2)T             00863**2
C                                                                       00864**2
C                                                                       00865**2
C                  (L,M),(M,N),(L,N) ARE THE DIMENSIONS OF THE          00866**2
C                                    PRE- , POST- AND PRODUCT-MATRICES  00867**2
C                                    RESPECTIVELY                       00868**2
C                           JL,JM,JN ARE CORRESPONDING DECLARED ROW     00869**2
C                                    DIMENSIONS AT THE CALLINE PROGRAM  00870**2
C                                                                       00871**2
C                                                                       00872   
      REAL*8 M1,M2,M3                                                           
      DIMENSION M1(JL,1) , M2(JM,1) , M3(JN,1)                          00874   
C                                                                       00875   
      DO 11 I = 1,L                                                     00876   
        DO 11 J = 1,N                                                   00877   
          M3(I,J) = 0.                                                  00878   
          DO 11 K = 1,M                                                 00879   
            GO TO(1,2,3,4),ICODE                                        00880   
   1        CONTINUE                                                    00881   
C   M3 = M1 * M2                                                        00882   
            M3(I,J) = M3(I,J) + M1(I,K)*M2(K,J)                         00883   
            GO TO 11                                                    00884   
   2        CONTINUE                                                    00885   
C   M3 = M1 TRANSPOSE * M2                                              00886   
            M3(I,J) = M3(I,J) + M1(K,I)*M2(K,J)                         00887   
            GO TO 11                                                    00888   
   3        CONTINUE                                                    00889   
C   M3 = M1 * M2 TRANSPOSE                                              00890   
            M3(I,J) = M3(I,J) + M1(I,K)*M2(J,K)                         00891   
            GO TO 11                                                    00892   
   4        CONTINUE                                                    00893   
C   M3 = M1 TRANSPOSE * M2 TRANSPOSE                                    00894   
            M3(I,J) = M3(I,J) + M1(K,I)*M2(J,K)                         00895   
   11 CONTINUE                                                          00896   
      RETURN                                                            00897   
      END                                                               00898   
