1 : C INVMAT SOURCE MAGN 09/07/30 21:17:26 6458 2 : SUBROUTINE INVMAT(MAT,MATRIK,IRET) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : c ************************************** 6 : C * ROUTINE d inversion de MATRIK * 7 : C * Diagonale * 8 : C * MAT : MATRIK entree * 9 : C * MATRIK : MATRIK :sortie * 10 : C * MATRIK est la matrice inverse de * 11 : C * MAT sous forme matrice elementaire * 12 : C * est sous forme morse * 13 : C ************************************** 14 : 15 : -INC SMMATRIK 16 : POINTEUR MAT.MATRIK 17 : 18 : SEGACT MAT 19 : IF (MAT.IRIGEL(7,1).NE.5) THEN 20 : WRITE(6,*) 'Impossible d inverser une' 21 : WRITE(6,*) 'matrice non diagonale' 22 : IRET=1 23 : RETURN 24 : END IF 25 : SEGDES MAT 26 : 26 : CALL MCOPY(MAT,MATRIK) 27 : SEGACT MATRIK*MOD 28 : 29 : IMATRI=IRIGEL(4,1) 30 : SEGACT IMATRI 31 : 32 : NBSOUS=LIZAFM(/1) 33 : NBME=LIZAFM(/2) 34 : 35 : DO I=1,NBSOUS 36 : DO J=1,NBME 37 : IZAFM=LIZAFM(I,J) 38 : SEGACT IZAFM*MOD 39 : NBEL=AM(/1) 40 : DO K=1,NBEL 41 : AM(K,1,1)=1/AM(K,1,1) 42 : END DO 43 : SEGDES IZAFM 44 : END DO 45 : END DO 46 : 47 : SEGDES IMATRI 48 : SEGDES MATRIK 49 : 50 : END 51 : 52 : 53 : 54 :
© Cast3M 2003 - All rights reserved.
Disclaimer