1      SUBROUTINE INV3X3(A,B,IERR)
2C
3C Inversion matrice 3 x 3
4C
5      DIMENSION A(3,3),B(3,3)
6C
7      DET = A(1,1)*A(2,2)*A(3,3) + A(1,2)*A(2,3)*A(3,1)
8     1    + A(1,3)*A(3,2)*A(2,1) - A(1,3)*A(2,2)*A(3,1)
9     2    - A(1,2)*A(2,1)*A(3,3) - A(1,1)*A(2,3)*A(3,2)
10      IF (DET.EQ.0.) THEN
11cc        PRINT*,'MATRICE NON INVERSIBLE'
12cc        STOP
13        IERR = 1
14        RETURN
15      ELSE
16        IF (ABS(DET).LT.1.E-05) THEN
17          IERR = -1
18        ELSE
19          IERR = 0
20        ENDIF
21        USDET = 1./DET
22      ENDIF
23C
24      B(1,1) = ( A(2,2)*A(3,3) - A(2,3)*A(3,2) ) * USDET
25      B(1,2) = ( A(1,3)*A(3,2) - A(1,2)*A(3,3) ) * USDET
26      B(1,3) = ( A(1,2)*A(2,3) - A(2,2)*A(1,3) ) * USDET
27      B(2,1) =-( A(2,1)*A(3,3) - A(2,3)*A(3,1) ) * USDET
28      B(2,2) = ( A(1,1)*A(3,3) - A(1,3)*A(3,1) ) * USDET
29      B(2,3) =-( A(1,1)*A(2,3) - A(1,3)*A(2,1) ) * USDET
30      B(3,1) = ( A(2,1)*A(3,2) - A(2,2)*A(3,1) ) * USDET
31      B(3,2) =-( A(1,1)*A(3,2) - A(1,2)*A(3,1) ) * USDET
32      B(3,3) = ( A(2,2)*A(1,1) - A(2,1)*A(1,2) ) * USDET
33C
34      END
35
36