1 : C BROYDI SOURCE CHAT 05/01/12 21:42:43 5004 2 : SUBROUTINE BROYDI(H,XK0,XK1,YK0,YK1) 3 : C 4 : C ================================================================== 5 : C 6 : C MISE A JOUR DU JACOBIEN PAR LA METHODE 7 : C DE BROYDEN 8 : C ================================================================== 9 : C 10 : C 11 : IMPLICIT INTEGER(I-N) 12 : IMPLICIT REAL*8 (A-H,O-Z) 13 : DIMENSION H(2,2),XK0(2),XK1(2),YK0(2),YK1(2),AE(2,2) 14 : DIMENSION AB(2),XK(2),YK(2),AC(2),AD(2,2),H1(2,2),AD1(2,2) 15 : C 16 : DO 1 I=1,2 17 : XK(I)=XK1(I)-XK0(I) 18 : 1 CONTINUE 19 : C 20 : DO 5 I=1,2 21 : YK(I)=YK1(I)-YK0(I) 22 : 5 CONTINUE 23 : C 24 : DO 10 I=1,2 25 : AB(I)=0.D0 26 : DO 10 J=1,2 27 : AB(I)=AB(I)+H(I,J)*YK(I) 28 : 10 CONTINUE 29 : C 30 : DO 20 I=1,2 31 : AC(I)=XK(I)-AB(I) 32 : 20 CONTINUE 33 : C 33 : CALL ZERO(AD,2,2) 34 : DO 30 I=1,2 35 : DO 30 J=1,2 36 : AD(I,J)=AC(I)*XK(J) 37 : 30 CONTINUE 38 : C 38 : CALL ZERO(AD1,2,2) 39 : DO 35 I=1,2 40 : DO 35 J=1,2 41 : AD1(I,J)=0.D0 42 : DO 35 K=1,2 43 : AD1(I,J)=AD1(I,J)+AD(I,K)*H(K,J) 44 : 35 CONTINUE 45 : C 46 : SCAL=0.D0 47 : DO 40 I=1,2 48 : SCAL=SCAL+XK(I)*AB(I) 49 : 40 CONTINUE 50 : C 51 : SCAL1=0.D0 52 : DO 42 I=1,2 53 : SCAL1=SCAL1+XK(I)*XK(I) 54 : 42 CONTINUE 55 : C 56 : DO 50 I=1,2 57 : DO 50 J=1,2 58 : AE(I,J)=SCAL1*AD1(I,J)/SCAL 59 : 50 CONTINUE 60 : C 60 : CALL ZERO(H1,2,2) 61 : DO 60 I=1,2 62 : DO 60 J=1,2 63 : H1(I,J)=H(I,J)+AE(I,J) 64 : 60 CONTINUE 65 : C 65 : CALL ZERO(H,2,2) 66 : DO 70 I=1,2 67 : DO 70 J=1,2 68 : H(I,J)=H1(I,J) 69 : 70 CONTINUE 70 : C------------------------------------------------------------------- 71 : RETURN 72 : END 73 : 74 : 75 :
© Cast3M 2003 - All rights reserved.
Disclaimer