C HINV33    SOURCE    AM        11/05/26    21:15:38     6982
      subroutine HINV33 (H,Hinv)
C     Routine permettant d'inverser une matrice 3,3

        IMPLICIT INTEGER(I-N)
        IMPLICIT REAL*8(A-H,O-Z)
        DIMENSION H(3,3), Hinv(3,3), comatH(3,3),TcomatH(3,3)
*
        detH=H(1,1)*H(2,2)*H(3,3)+H(2,1)*H(3,2)*H(1,3)
     &  +H(3,1)*H(1,2)*H(2,3)-H(3,1)*H(2,2)*H(1,3)
     &  -H(3,2)*H(2,3)*H(1,1)-H(3,3)*H(2,1)*H(1,2)

        comatH(1,1)=H(2,2)*H(3,3)-H(3,2)*H(2,3)
        comatH(2,1)=-(H(1,2)*H(3,3)-H(3,2)*H(1,3))
        comatH(3,1)=H(1,2)*H(2,3)-H(2,2)*H(1,3)
        comatH(1,2)=-(H(2,1)*H(3,3)-H(3,1)*H(2,3))
        comatH(2,2)=H(1,1)*H(3,3)-H(3,1)*H(1,3)
        comatH(3,2)=-(H(1,1)*H(2,3)-H(2,1)*H(1,3))
        comatH(1,3)=H(2,1)*H(3,2)-H(3,1)*H(2,2)
        comatH(2,3)=-(H(1,1)*H(3,2)-H(3,1)*H(1,2))
        comatH(3,3)=H(1,1)*H(2,2)-H(2,1)*H(1,2)

        call TRANSP (3,3,comatH,TcomatH)
       DO I=1,3
        DO J=1,3
         Hinv(I,J)=1/detH*TcomatH(I,J)
        ENDDO
       ENDDO
        return
        end

