Télécharger iplnu4.eso

Retour à la liste

Numérotation des lignes :

iplnu4
  1. C IPLNU4 SOURCE BP208322 21/01/28 21:15:13 10868
  2. SUBROUTINE IPLNU4(A,D,INDX,ILONG,B,MM,K)
  3. c
  4. c fonction
  5. c Cette routine sert à resoudre un systeme lineaire non symmetrqiue
  6. c par la methode LU ( cf Numerical recipes in fortran 2nd edition)
  7. c la matrice a ete decomposé par iplnu3 sous la forme LU
  8. c
  9. c variables
  10. c a (E) est un tableau nXn dont les npXnp 1er membre contienne la
  11. c matrice
  12. c indx (S) est un tableau de dimension n qui contiendra une tableau
  13. c d'indice de permuation
  14. c b (E/S) contient en entree le second membre c'est un tableau de
  15. c dim n. en sortie il contient la valeurs des inconnues
  16. c
  17. c date 18/07/94
  18. c
  19. c langage fortran pur
  20. c
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8 (A-H,O-Z)
  23.  
  24. C SEGMENT MA
  25. C ce segment contient la matrice du syteme lineaire
  26. C a contient les termes et indx contient les indice de permutation
  27. C une fois la decomposition effectué
  28. REAL*8 A,D
  29. INTEGER INDX
  30. DIMENSION A(ILONG,*)
  31. DIMENSION INDX(*)
  32. C ENDSEGMENT
  33.  
  34. C SEGMENT MB
  35. REAL*8 B
  36. DIMENSION B(ILONG,*)
  37. C ENDSEGMENT
  38.  
  39. N = ILONG
  40. II=0
  41. DO 12 I=1,N
  42. LL=INDX(I)
  43. SUM=B(LL,k)
  44. B(LL,K)=B(I,K)
  45. IF (II.NE.0)THEN
  46. DO 11 J=II,I-1
  47. SUM=SUM-A(I,J)*B(J,K)
  48. 11 CONTINUE
  49. ELSE IF (SUM.NE.0.) THEN
  50. II=I
  51. ENDIF
  52. B(I,K)=SUM
  53. 12 CONTINUE
  54. DO 14 I=N,1,-1
  55. SUM=B(I,K)
  56. IF(I.LT.N)THEN
  57. DO 13 J=I+1,N
  58. SUM=SUM-A(I,J)*B(J,K)
  59. 13 CONTINUE
  60. ENDIF
  61. B(I,K)=SUM/A(I,I)
  62. 14 CONTINUE
  63. RETURN
  64. END
  65.  
  66.  
  67.  
  68.  

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