icgfam
C ICGFAM SOURCE CHAT 05/01/13 00:28:05 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 morse. 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 morse ! C C +----------+------+---------------------------------------------+ C C ! IA ! <--- ! Le tableau des pointeurs de dbut de ligne ! C C +----------+------+---------------------------------------------+ C C ! JA ! <--- ! Le tableau d'indexage correspondant ! C C +----------+------+---------------------------------------------+ C C ! NEL ! <--- ! Nombre de lignes de la matrice ! 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 JA(*),IA(NEL+1) DIMENSION P(*),A(*) DO 1 I=1,NEL DO 3 JKA=IA(I)+1,IA(I+1)-1 J=JA(JKA) IF(J.LT.I) THEN S=0.D0 DO 4 KKA=IA(J)+1,IA(J+1)-1 K=JA(KKA) IF(K.LT.J) THEN IF(IKA.NE.0) S=S+P(IKA)*P(KKA)*P(IA(K)) ENDIF 4 CONTINUE P(JKA)=(A(JKA)-S)/P(IA(J)) ENDIF 3 CONTINUE S=0.D0 DO 2 KKA=IA(I)+1,IA(I+1)-1 K=JA(KKA) IF(K.LT.I) S=S+P(KKA)*P(KKA)*P(IA(K)) 2 CONTINUE P(IA(I))=A(IA(I))-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=IA(I)+1,IA(I+1)-1 J=JA(JKA) IF(J.LT.I) THEN P(IKA)=P(JKA) ENDIF 6 CONTINUE P(IA(I))=1./P(IA(I)) 5 CONTINUE C Sortie C do 4000 i=1,nel C write(60,60) (ka(i,j),j=1,9) C4000 continue C do 4001 i=1,nel C write(60,61) ( a(i,j),j=1,9) C4001 continue C do 4002 i=1,nel C write(60,61) ( p(ka),ka=ia(i),ia(i+1)-1) 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