      SUBROUTINE TABA2D(I1,I2,A,B,C)
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C                  S.P. TABA2D
C                  ----------------
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C BUT : CALCUL DU PRODUIT MATRICIEL TRANSPOSEE(A)*B*A DANS LE CAS OU B
C ----  OU B EST UNE MATRICE SYMETRIQUE DE DIMENSION (I2,I2)
C       OU C = TA * B * A EST SYMETRIQUE STOCKEE SOUS FORME TRIANGULAIRE
C
C PARAMETRES D ENTREE :
C -----------------------
C I1  : NBRE DE COLONNES DE A
C I2  : NBRE DE LIGNES DE A
C A   : MATRICE I2,I1
C B   : MATRICE I2,I2
C
C PARAMETRE RESULTAT :
C -----------------------
C C   : PRODUIT MATRICIEL TRANSPOSEE(A)*B*A
C       DANS LE TABLEAU C SEULE LA PARTIE TRIANGULAIRE SUPERIEURE
C       DE HAUT EN BAS ET DE LA GAUCHE VERS LA DROITE EST STOCKEE
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C PROGRAMMEUR T. CAMPOS LAN 189 PARIS SEPTEMBRE 1979
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      DOUBLE PRECISION A,B,C,S
      DIMENSION A(I2,I1),B(I2,I2),C(*)
C
      N=0
            DO 1 J=1,I1
                 DO 2 I=1,J
                 N=N+1
                 S=0.D0
                      DO 3 L=1,I2
                           DO 4 K=1,I2
                           S=S+A(K,I)*B(K,L)*A(L,J)
    4                      CONTINUE
    3                 CONTINUE
                 C(N)=S
    2            CONTINUE
    1       CONTINUE
      END
