C SYCHOM    SOURCE    CHAT      05/01/13    03:28:37     5004
       SUBROUTINE SYCHOM(ZMAT,IMAX)
C
C Résolution de l'équation matricielle C = L D LT
C par la méthode de CHOlesky Modifiée
C    C  : Matrice symétrique définie positive
C    L  : Matrice triangulaire inférieure de diagonale unité
C    D  : Matrice diagonale
C    LT : Matrice transposée de L
C
      IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8 (A-H,O-Z)
C
       DIMENSION ZMAT(IMAX,IMAX)
C
C Calcul de ZMAT
C factorisation de C sous la forme Z LT
C avec Z = L D
C On récupère en sortie dans le tableau ZMAT modifié
C la matrice M = L SQRT(D) telle que M MT = C
C
       DIV = ZMAT(2,1) / ZMAT(1,1)
       ZMAT(2,2) = ZMAT(2,2) - DIV*ZMAT(2,1)
       ZMAT(2,1) = DIV
       DIV = 0.D0
C
       DO 1 I=3,IMAX
C
         DO 2 J=2,(I-1)
           DO 3 K=1,(J-1)
             ZMAT(I,J) = ZMAT(I,J) - ZMAT(I,K) * ZMAT(J,K)
 3         CONTINUE
 2       CONTINUE
C
         DO 4 J=1,(I-1)
           DIV =  ZMAT(I,J) / ZMAT(J,J)
           ZMAT(I,I) = ZMAT(I,I) - DIV*ZMAT(I,J)
           ZMAT(I,J) = DIV
 4       CONTINUE
 1     CONTINUE
C
       DO 5 J=1,(IMAX-1)
         ZMAT(J,J) = SQRT(ZMAT(J,J))
         DO 6 I=J+1,IMAX
            ZMAT(I,J) = ZMAT(I,J) * ZMAT(J,J)
 6       CONTINUE
 5     CONTINUE
       ZMAT(IMAX,IMAX) = SQRT(ZMAT(IMAX,IMAX))
C
       END


