Télécharger icgfac.eso

Retour à la liste

Numérotation des lignes :

icgfac
  1. C ICGFAC SOURCE CHAT 05/01/13 00:28:01 5004
  2. SUBROUTINE ICGFAC(P,A,KA,NEL,NNZ)
  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 compress‚. 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 compress‚ ! C
  21. C +----------+------+---------------------------------------------+ C
  22. C ! KA ! <--- ! Le tableau d'indexage correspondant ! C
  23. C +----------+------+---------------------------------------------+ C
  24. C ! NEL ! <--- ! Nombre de lignes de la matrice ! C
  25. C +----------+------+---------------------------------------------+ C
  26. C ! NNZ ! <--- ! Nombre de colonnes (nombre maxi de voisins) ! 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 P(NEL,NNZ),A(NEL,NNZ)
  53. DIMENSION KA(NEL,NNZ)
  54.  
  55. DO 1 I=1,NEL
  56. DO 3 JKA=2,NNZ
  57. J=KA(I,JKA)
  58. IF(J.LT.I) THEN
  59. S=0.D0
  60. DO 4 KKA=2,NNZ
  61. K=KA(J,KKA)
  62. IF(K.LT.J) THEN
  63. IKA=NORDRC(I,K,KA,NEL,NNZ)
  64. IF(IKA.NE.0) S=S+P(I,IKA)*P(J,KKA)*P(K,1)
  65. ENDIF
  66. 4 CONTINUE
  67. P(I,JKA)=(A(I,JKA)-S)/P(J,1)
  68. ENDIF
  69. 3 CONTINUE
  70. S=0.D0
  71. DO 2 KKA=2,NNZ
  72. K=KA(I,KKA)
  73. IF(K.LT.I) S=S+P(I,KKA)*P(I,KKA)*P(K,1)
  74. 2 CONTINUE
  75. P(I,1)=A(I,1)-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=2,NNZ
  84. J=KA(I,JKA)
  85. IF(J.LT.I) THEN
  86. IKA=NORDRC(J,I,KA,NEL,NNZ)
  87. P(J,IKA)=P(I,JKA)
  88. ENDIF
  89. 6 CONTINUE
  90. P(I,1)=1./P(I,1)
  91. 5 CONTINUE
  92.  
  93. C Sortie
  94. C do 4000 i=1,nel
  95. C write(61,60) (ka(i,j),j=1,9)
  96. C4000 continue
  97. C do 4001 i=1,nel
  98. C write(61,61) ( a(i,j),j=1,9)
  99. C4001 continue
  100. C do 4002 i=1,nel
  101. C write(61,61) ( p(i,j),j=1,9)
  102. C4002 continue
  103. C60 format(9(1x,i4))
  104. C61 format(9(1x,f7.4))
  105.  
  106. RETURN
  107. END
  108.  
  109.  

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