C BROYDI    SOURCE    CHAT      05/01/12    21:42:43     5004
      SUBROUTINE BROYDI(H,XK0,XK1,YK0,YK1)
C
C ==================================================================
C
C             MISE A JOUR DU JACOBIEN PAR LA METHODE
C                          DE BROYDEN
C ==================================================================
C
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION H(2,2),XK0(2),XK1(2),YK0(2),YK1(2),AE(2,2)
      DIMENSION AB(2),XK(2),YK(2),AC(2),AD(2,2),H1(2,2),AD1(2,2)
C
      DO 1 I=1,2
        XK(I)=XK1(I)-XK0(I)
    1 CONTINUE
C
      DO 5 I=1,2
        YK(I)=YK1(I)-YK0(I)
    5 CONTINUE
C
      DO 10 I=1,2
        AB(I)=0.D0
      DO 10 J=1,2
        AB(I)=AB(I)+H(I,J)*YK(I)
   10 CONTINUE
C
      DO 20 I=1,2
        AC(I)=XK(I)-AB(I)
   20 CONTINUE
C
      CALL ZERO(AD,2,2)
      DO 30 I=1,2
      DO 30 J=1,2
       AD(I,J)=AC(I)*XK(J)
   30 CONTINUE
C
      CALL ZERO(AD1,2,2)
      DO 35 I=1,2
      DO 35 J=1,2
         AD1(I,J)=0.D0
      DO 35 K=1,2
       AD1(I,J)=AD1(I,J)+AD(I,K)*H(K,J)
   35 CONTINUE
C
      SCAL=0.D0
      DO 40 I=1,2
       SCAL=SCAL+XK(I)*AB(I)
   40 CONTINUE
C
      SCAL1=0.D0
      DO 42 I=1,2
       SCAL1=SCAL1+XK(I)*XK(I)
   42 CONTINUE
C
      DO 50 I=1,2
      DO 50 J=1,2
       AE(I,J)=SCAL1*AD1(I,J)/SCAL
   50 CONTINUE
C
      CALL ZERO(H1,2,2)
      DO 60 I=1,2
      DO 60 J=1,2
        H1(I,J)=H(I,J)+AE(I,J)
   60 CONTINUE
C
      CALL ZERO(H,2,2)
      DO 70 I=1,2
      DO 70 J=1,2
        H(I,J)=H1(I,J)
   70 CONTINUE
C-------------------------------------------------------------------
      RETURN
      END



