C INVMAT    SOURCE    PV        20/09/26    21:17:28     10724          
      SUBROUTINE INVMAT(MAT,MATRIK,IRET)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
c     **************************************
C     * ROUTINE d inversion de MATRIK      *
C     * Diagonale                          *
C     * MAT : MATRIK entree                *
C     * MATRIK : MATRIK :sortie            *
C     * MATRIK est la matrice inverse de   *
C     * MAT sous forme matrice elementaire *
C     * est sous forme morse               *
C     **************************************

-INC SMMATRIK
      POINTEUR MAT.MATRIK

      SEGACT MAT
      IF (MAT.IRIGEL(7,1).NE.5) THEN
        WRITE(6,*) 'Impossible d inverser une'
        WRITE(6,*) 'matrice non diagonale'
        IRET=1
        RETURN
      END IF
      SEGDES MAT

      CALL MCOPY(MAT,MATRIK)
      SEGACT MATRIK*MOD

      IMATRI=IRIGEL(4,1)
      SEGACT IMATRI

      NBSOUS=LIZAFM(/1)
      NBME=LIZAFM(/2)

      DO I=1,NBSOUS
        DO J=1,NBME
           IZAFM=LIZAFM(I,J)
           SEGACT IZAFM*MOD
           NBEL=AM(/1)
           DO K=1,NBEL
             AM(K,1,1)=1/AM(K,1,1)
           END DO
           SEGDES IZAFM
        END DO
      END DO

      SEGDES IMATRI
      SEGDES MATRIK

      END




 
 
 
