Télécharger elpdr2.eso

Retour à la liste

Numérotation des lignes :

elpdr2
  1. C ELPDR2 SOURCE CHAT 05/01/12 23:37:20 5004
  2. SUBROUTINE ELPDR2(CA1,CV,CX,N,IPIVO,JPIVO,IAUX)
  3. C
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-B,D-H,O-Z)
  6. IMPLICIT COMPLEX*16(C)
  7. C
  8. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  9. C
  10. C
  11. C RESOLUTION D'UN SYSTEME LINEAIRE COMPLEXE CA1 * CX = CV
  12. C
  13. C PAR LA METHODE DE GAUSS EN UTILISATION LE STOCKAGE DE LA
  14. C
  15. C TRIANGULARISATION FAITE PAR ELPDR1 (IPIV, JPIV, IAUX)
  16. C
  17. C
  18. C PARAMETRES :
  19. C
  20. C CA1(N*N) : MATRICE (N*N) REPRESENTANT LE SYSTEME LINEAIRE
  21. C CV(N) : SECOND MEMBRE
  22. C IAUX(N) : TABLEAU DE TRAVAIL QUI DONNE L'ORDRE DES INCONNUES
  23. C
  24. C SORTIE :
  25. C
  26. C CX : SOLUTION
  27. C
  28. C AUTEUR : SAINT-DIZIER
  29. C DATE : 08 DEC 1989
  30. C
  31. C ====================================================================
  32. C
  33. COMPLEX*16 CA1(N,*),CV(*),CX(*)
  34. INTEGER IAUX(*),IPIVO(*),JPIVO(*)
  35. EPS = 1.D-12
  36. C
  37. DO 100 ILIG =1,N
  38. C
  39. C
  40. DO 120 J=ILIG,N
  41. CAUX = CA1(IPIVO(ILIG),J)
  42. CA1(IPIVO(ILIG),J)= CA1(ILIG,J)
  43. CA1(ILIG,J)= CAUX
  44. 120 CONTINUE
  45. C
  46. CAUX = CV(IPIVO(ILIG))
  47. CV(IPIVO(ILIG))= CV(ILIG)
  48. CV(ILIG)= CAUX
  49. C
  50. C 1.3 ON MET LA COLONNE NUMERO JPIV EN JLIG= ILIG
  51. C ET ON NOTE CELA DANS LE TABLEAU IAUX
  52. C * ERREUR SUR BORNES 130 CORRIGEE
  53. C
  54. JLIG=ILIG
  55. DO 130 I=1 ,N
  56. CAUX = CA1(I,JPIVO(JLIG))
  57. CA1(I,JPIVO(JLIG))= CA1(I,JLIG)
  58. CA1(I,JLIG)= CAUX
  59. 130 CONTINUE
  60. C
  61. DO 140 I= ILIG + 1 ,N
  62. CAUX = CA1(I,ILIG) / CA1(ILIG,ILIG)
  63. DO 141 J=ILIG ,N
  64. CA1(I,J)= CA1(I,J)- CAUX * CA1 (ILIG,J)
  65. 141 CONTINUE
  66. CV(I) = CV(I)- CAUX * CV(ILIG)
  67. 140 CONTINUE
  68. C
  69. C FIN BOUCLE SUR LES MATRICES EMBOITEES
  70. 100 CONTINUE
  71. C
  72. C 2. SUBSTITUTION EN REMONTANT
  73. C
  74. CV(N) = CV(N) / CA1 (N,N)
  75. DO 200 I= 2,N
  76. IN = N + 1 - I
  77. DO 210 K= 1,I-1
  78. KN = N + 1 - K
  79. CV(IN) = CV(IN) - CA1 (IN,KN)* CV(KN)
  80. 210 CONTINUE
  81. CV(IN) = CV(IN) / CA1 (IN,IN)
  82. 200 CONTINUE
  83. C
  84. C 3. ON REMET LES INCONNUES A LA BONNE PLACE
  85. C
  86. DO 300 I= 1,N
  87. CX(IAUX(I)) = CV(I)
  88. 300 CONTINUE
  89. C
  90. RETURN
  91. END
  92.  
  93.  

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