      SUBROUTINE TABA0D(I1,I2,A,B,C)
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C                  S.P. TABA0D
C                  -----------
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C BUT : CALCUL DU PRODUIT MATRICIEL TRANSPOSEE(A)*B*A DANS LE CAS
C ----- OU B EST SYMETRIQUE STOCKEE SOUS FORME TRIANGULAIRE
C       OU C EST SYMETRIQUE STOCKEE SOUS FORME TRIANGULAIRE
C       OU C = TA * B * A
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 SYMETRIQUE STOCKEE DE HAUT EN BAS ET DE LA GAUCHE VE
C       VERS LA DROITE SEULE LA PARTIE TRIANGULAIRE SUPERIEURE EST
C       STOCKEE
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 : A.PERRONNET LAN 189 PARIS ET IRIA OCTOBRE 1979
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      DOUBLE PRECISION A,B,C,S,S1,S2,S3
      DIMENSION A(I2,I1),B(*),C(*)
C
      N=0
            DO 1 J=1,I1
                 DO 2 I=1,J
                 N = N + 1
                 N1= 0
                 S = 0.D0
                      DO 3 L=1,I2
                      L1 = L - 1
                      S1 = A(L,J)
                      S2 = A(L,I)
                      IF(L1 .EQ. 0) GOTO 5
                            DO 4 K=1,L1
                            N1 = N1 + 1
                            S3 = B(N1)
                            S = S + S3 * ( A(K,I) * S1 + S2 * A(K,J))
    4                       CONTINUE
    5                 N1 = N1 + 1
                      S = S + S2 * B(N1) * S1
    3                 CONTINUE
                 C(N) = S
    2            CONTINUE
    1       CONTINUE
      END
