1 : C BROYDE SOURCE CHAT 05/01/12 21:42:40 5004 2 : SUBROUTINE BROYDE(QUASIN) 3 : C 4 : C----------------------------------------------------- 5 : C METHODE QN DE BROYDEN 6 : C 7 : C D. Combescure, P. Pegon 14/6/95 8 : C----------------------------------------------------- 9 : C 10 : IMPLICIT INTEGER(I-N) 11 : IMPLICIT REAL*8(A-H,O-Z) 12 : SEGMENT,QUASIN 13 : REAL*8 XH0(MN,MN) 14 : REAL*8 WUP(MN,ITM),YUP(MN,ITM) 15 : INTEGER IT 16 : REAL*8 R(MN) 17 : REAL*8 D(MN),DES(MN) 18 : ENDSEGMENT 19 : DATA UN/1.D0/ 20 : C 21 : MN =WUP(/1) 22 : ITM=WUP(/2) 23 : C 24 : ITM1=IT 25 : IT=IT+1 26 : C 27 : C SI IT=0 ON FAIT UN mNR, SINON QN (sans test) 28 : C 29 : IF(IT.GT.0)THEN 30 : C 31 : C ON UPDATE YUP 32 : C 32 : CALL MULVEC(YUP(1,IT),DES,UN,MN) 33 : C 34 : C ON CALCULE DES=-H(i-1)*R(i) 35 : C 35 : CALL MATVE1(XH0,R,MN,MN,DES,2) 35 : CALL MULVEC(DES,DES,-UN,MN) 36 : IF(ITM1.GT.1)THEN 37 : DO IE1=1,ITM1 38 : CC=SCVECT(YUP(1,IE1),DES,MN) 38 : CALL PLVECT(DES,UN,WUP(1,IE1),CC,MN,DES) 39 : ENDDO 40 : ENDIF 41 : C 42 : C ON UPDATE WUP 43 : C 44 : BET=SCVECT(YUP(1,IT),YUP(1,IT),MN)-SCVECT(YUP(1,IT),DES,MN) 45 : BET=UN/BET 45 : CALL MULVEC(WUP(1,IT),DES,BET,MN) 46 : C 47 : C ON CALCULE DES=-H(i)*R(i) 48 : C 49 : CC=SCVECT(YUP(1,IT),DES,MN) 49 : CALL PLVECT(DES,UN,WUP(1,IT),CC,MN,DES) 50 : ELSE 50 : CALL MATVE1(XH0,R,MN,MN,DES,2) 50 : CALL MULVEC(DES,DES,-UN,MN) 51 : ENDIF 52 : C 53 : C AJOURNEMENT DE D 54 : C 54 : CALL PLVECT(D,UN,DES,UN,MN,D) 55 : C 56 : RETURN 57 : END 58 : 59 :
© Cast3M 2003 - All rights reserved.
Disclaimer