Télécharger icgfam.eso

Retour à la liste

Numérotation des lignes :

  1. C ICGFAM SOURCE CHAT 05/01/13 00:28:05 5004
  2. SUBROUTINE ICGFAM(P,A,IA,JA,NEL)
  3. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  4. C C
  5. C Effectue une factorisation par un Choleski incomplet de la C
  6. C matrice de pression lorsque celle-ci est stock‚e en mode C
  7. C morse. La matrice de pr‚conditionnement a la mˆme structure. C
  8. C On stocke dans la diagonale la diagonale inverse en vue de la C
  9. C r‚solution par mont‚e descente. C
  10. C C
  11. C +---------------------------------------------------------------+ C
  12. C ! DESCRIPTION DES ARGUMENTS ! C
  13. C !---------------------------------------------------------------! C
  14. C ! ! C
  15. C +----------+------+---------------------------------------------+ C
  16. C ! NOM ! MODE ! DESCRIPTION ! C
  17. C +----------+------+---------------------------------------------+ C
  18. C ! P ! ---> ! La matrice de pr‚conditionnement ! C
  19. C +----------+------+---------------------------------------------+ C
  20. C ! A ! <--- ! La matrice de pression stock‚e morse ! C
  21. C +----------+------+---------------------------------------------+ C
  22. C ! IA ! <--- ! Le tableau des pointeurs de d‚but de ligne ! C
  23. C +----------+------+---------------------------------------------+ C
  24. C ! JA ! <--- ! Le tableau d'indexage correspondant ! C
  25. C +----------+------+---------------------------------------------+ C
  26. C ! NEL ! <--- ! Nombre de lignes de la matrice ! C
  27. C +----------+------+---------------------------------------------+ C
  28. C ! ! C
  29. C ! MODE = ---> VARIABLE ECRITE (SORTIE) ! C
  30. C ! MODE = <--- VARIABLE LUE (ENTREE) ! C
  31. C ! MODE = <--> VARIABLE LUE ET ECRITE ! C
  32. C ! ! C
  33. C +---------------------------------------------------------------+ C
  34. C ! ! C
  35. C ! CONTACT : Fran‡ois Thomas 69 08 24 64 ou 76 96 ! C
  36. C ! ! C
  37. C +---------------------------------------------------------------+ C
  38. C ! ! C
  39. C ! RELATIONS AVEC D'AUTRES MODULES ! C
  40. C ! ! C
  41. C +---------------------------------------------------------------+ C
  42. C ! ! C
  43. C ! MODIFICATIONS ! C
  44. C ! ! C
  45. C ! 11/03/92 : Cr‚ation ! C
  46. C ! ! C
  47. C +---------------------------------------------------------------+ C
  48. C C
  49. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  50. IMPLICIT INTEGER(I-N)
  51. IMPLICIT REAL*8 (A-H,O-Z)
  52. DIMENSION JA(*),IA(NEL+1)
  53. DIMENSION P(*),A(*)
  54.  
  55. DO 1 I=1,NEL
  56. DO 3 JKA=IA(I)+1,IA(I+1)-1
  57. J=JA(JKA)
  58. IF(J.LT.I) THEN
  59. S=0.D0
  60. DO 4 KKA=IA(J)+1,IA(J+1)-1
  61. K=JA(KKA)
  62. IF(K.LT.J) THEN
  63. IKA=NORDRM(I,K,IA,JA)
  64. IF(IKA.NE.0) S=S+P(IKA)*P(KKA)*P(IA(K))
  65. ENDIF
  66. 4 CONTINUE
  67. P(JKA)=(A(JKA)-S)/P(IA(J))
  68. ENDIF
  69. 3 CONTINUE
  70. S=0.D0
  71. DO 2 KKA=IA(I)+1,IA(I+1)-1
  72. K=JA(KKA)
  73. IF(K.LT.I) S=S+P(KKA)*P(KKA)*P(IA(K))
  74. 2 CONTINUE
  75. P(IA(I))=A(IA(I))-S
  76. 1 CONTINUE
  77.  
  78. C On reporte dans le triangle sup‚rieur (plus pratique pour la
  79. C r‚solution). On stocke la diagonale inverse pour des questions
  80. C de performance dans la r‚solution.
  81.  
  82. DO 5 I=1,NEL
  83. DO 6 JKA=IA(I)+1,IA(I+1)-1
  84. J=JA(JKA)
  85. IF(J.LT.I) THEN
  86. IKA=NORDRM(J,I,IA,JA)
  87. P(IKA)=P(JKA)
  88. ENDIF
  89. 6 CONTINUE
  90. P(IA(I))=1./P(IA(I))
  91. 5 CONTINUE
  92. C Sortie
  93. C do 4000 i=1,nel
  94. C write(60,60) (ka(i,j),j=1,9)
  95. C4000 continue
  96. C do 4001 i=1,nel
  97. C write(60,61) ( a(i,j),j=1,9)
  98. C4001 continue
  99. C do 4002 i=1,nel
  100. C write(60,61) ( p(ka),ka=ia(i),ia(i+1)-1)
  101. C4002 continue
  102. C60 format(9(1x,i4))
  103. C61 format(9(1x,f7.4))
  104.  
  105. RETURN
  106. END
  107.  
  108.  

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