Télécharger broyde.eso

Retour à la liste

Numérotation des lignes :

broyde
  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
  33. CALL MULVEC(YUP(1,IT),DES,UN,MN)
  34. C
  35. C ON CALCULE DES=-H(i-1)*R(i)
  36. C
  37. CALL MATVE1(XH0,R,MN,MN,DES,2)
  38. CALL MULVEC(DES,DES,-UN,MN)
  39. IF(ITM1.GT.1)THEN
  40. DO IE1=1,ITM1
  41. CC=SCVECT(YUP(1,IE1),DES,MN)
  42. CALL PLVECT(DES,UN,WUP(1,IE1),CC,MN,DES)
  43. ENDDO
  44. ENDIF
  45. C
  46. C ON UPDATE WUP
  47. C
  48. BET=SCVECT(YUP(1,IT),YUP(1,IT),MN)-SCVECT(YUP(1,IT),DES,MN)
  49. BET=UN/BET
  50. CALL MULVEC(WUP(1,IT),DES,BET,MN)
  51. C
  52. C ON CALCULE DES=-H(i)*R(i)
  53. C
  54. CC=SCVECT(YUP(1,IT),DES,MN)
  55. CALL PLVECT(DES,UN,WUP(1,IT),CC,MN,DES)
  56. ELSE
  57. CALL MATVE1(XH0,R,MN,MN,DES,2)
  58. CALL MULVEC(DES,DES,-UN,MN)
  59. ENDIF
  60. C
  61. C AJOURNEMENT DE D
  62. C
  63. CALL PLVECT(D,UN,DES,UN,MN,D)
  64. C
  65. RETURN
  66. END
  67.  
  68.  
  69.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales