icgfac
C ICGFAC SOURCE CHAT 05/01/13 00:28:01 5004 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C Effectue une factorisation par un Choleski incomplet de la C C matrice de pression lorsque celle-ci est stocke en mode C C compress. La matrice de prconditionnement a la mme structure. C C On stocke dans la diagonale la diagonale inverse en vue de la C C rsolution par monte descente. C C C C +---------------------------------------------------------------+ C C ! DESCRIPTION DES ARGUMENTS ! C C !---------------------------------------------------------------! C C ! ! C C +----------+------+---------------------------------------------+ C C ! NOM ! MODE ! DESCRIPTION ! C C +----------+------+---------------------------------------------+ C C ! P ! ---> ! La matrice de prconditionnement ! C C +----------+------+---------------------------------------------+ C C ! A ! <--- ! La matrice de pression stocke compress ! C C +----------+------+---------------------------------------------+ C C ! KA ! <--- ! Le tableau d'indexage correspondant ! C C +----------+------+---------------------------------------------+ C C ! NEL ! <--- ! Nombre de lignes de la matrice ! C C +----------+------+---------------------------------------------+ C C ! NNZ ! <--- ! Nombre de colonnes (nombre maxi de voisins) ! C C +----------+------+---------------------------------------------+ C C ! ! C C ! MODE = ---> VARIABLE ECRITE (SORTIE) ! C C ! MODE = <--- VARIABLE LUE (ENTREE) ! C C ! MODE = <--> VARIABLE LUE ET ECRITE ! C C ! ! C C +---------------------------------------------------------------+ C C ! ! C C ! CONTACT : Franois Thomas 69 08 24 64 ou 76 96 ! C C ! ! C C +---------------------------------------------------------------+ C C ! ! C C ! RELATIONS AVEC D'AUTRES MODULES ! C C ! ! C C +---------------------------------------------------------------+ C C ! ! C C ! MODIFICATIONS ! C C ! ! C C ! 11/03/92 : Cration ! C C ! ! C C +---------------------------------------------------------------+ C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION P(NEL,NNZ),A(NEL,NNZ) DIMENSION KA(NEL,NNZ) DO 1 I=1,NEL DO 3 JKA=2,NNZ J=KA(I,JKA) IF(J.LT.I) THEN S=0.D0 DO 4 KKA=2,NNZ K=KA(J,KKA) IF(K.LT.J) THEN IF(IKA.NE.0) S=S+P(I,IKA)*P(J,KKA)*P(K,1) ENDIF 4 CONTINUE P(I,JKA)=(A(I,JKA)-S)/P(J,1) ENDIF 3 CONTINUE S=0.D0 DO 2 KKA=2,NNZ K=KA(I,KKA) IF(K.LT.I) S=S+P(I,KKA)*P(I,KKA)*P(K,1) 2 CONTINUE P(I,1)=A(I,1)-S 1 CONTINUE C On reporte dans le triangle suprieur (plus pratique pour la C rsolution. On stocke la diagonale inverse pour des questions C de performance dans la rsolution. DO 5 I=1,NEL DO 6 JKA=2,NNZ J=KA(I,JKA) IF(J.LT.I) THEN P(J,IKA)=P(I,JKA) ENDIF 6 CONTINUE P(I,1)=1./P(I,1) 5 CONTINUE C Sortie C do 4000 i=1,nel C write(61,60) (ka(i,j),j=1,9) C4000 continue C do 4001 i=1,nel C write(61,61) ( a(i,j),j=1,9) C4001 continue C do 4002 i=1,nel C write(61,61) ( p(i,j),j=1,9) C4002 continue C60 format(9(1x,i4)) C61 format(9(1x,f7.4)) RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales