8 DOUBLE PRECISION A(ndi,ndi),A_INV(ndi,ndi),DET_A,DET_A_INV
10 det_a = a(1,1)*(a(2,2)*a(3,3) - a(3,2)*a(2,3)) -
11 + a(2,1)*(a(1,2)*a(3,3) - a(3,2)*a(1,3)) +
12 + a(3,1)*(a(1,2)*a(2,3) - a(2,2)*a(1,3))
14 IF (det_a .LE. 0.d0)
THEN 15 WRITE(*,*)
'WARNING: SUBROUTINE MATINV3D:' 16 WRITE(*,*)
'WARNING: DET OF MAT=',det_a
20 det_a_inv = 1.d0/det_a
22 a_inv(1,1) = det_a_inv*(a(2,2)*a(3,3)-a(3,2)*a(2,3))
23 a_inv(1,2) = det_a_inv*(a(3,2)*a(1,3)-a(1,2)*a(3,3))
24 a_inv(1,3) = det_a_inv*(a(1,2)*a(2,3)-a(2,2)*a(1,3))
25 a_inv(2,1) = det_a_inv*(a(3,1)*a(2,3)-a(2,1)*a(3,3))
26 a_inv(2,2) = det_a_inv*(a(1,1)*a(3,3)-a(3,1)*a(1,3))
27 a_inv(2,3) = det_a_inv*(a(2,1)*a(1,3)-a(1,1)*a(2,3))
28 a_inv(3,1) = det_a_inv*(a(2,1)*a(3,2)-a(3,1)*a(2,2))
29 a_inv(3,2) = det_a_inv*(a(3,1)*a(1,2)-a(1,1)*a(3,2))
30 a_inv(3,3) = det_a_inv*(a(1,1)*a(2,2)-a(2,1)*a(1,2))
subroutine matinv3d(A, A_INV, NDI)