SpectraRust/tlusty/extracted/minv3.f
2026-03-19 14:05:33 +08:00

37 lines
913 B
Fortran

SUBROUTINE MINV3(A)
C ===================
C
C Special routine for an invresion of a 3 x 3 matrix
C
INCLUDE 'IMPLIC.FOR'
PARAMETER (UN=1.D0)
DIMENSION A(3,3)
C
A(2,1)=A(2,1)/A(1,1)
A(2,2)=A(2,2)-A(2,1)*A(1,2)
A(2,3)=A(2,3)-A(2,1)*A(1,3)
A(3,1)=A(3,1)/A(1,1)
A(3,2)=(A(3,2)-A(3,1)*A(1,2))/A(2,2)
A(3,3)=A(3,3)-A(3,1)*A(1,3)-A(3,2)*A(2,3)
C
A(3,2)=-A(3,2)
A(3,1)=-A(3,1)-A(3,2)*A(2,1)
A(2,1)=-A(2,1)
C
A(3,3)=UN/A(3,3)
A(2,3)=-A(2,3)*A(3,3)/A(2,2)
A(2,2)=UN/A(2,2)
A(1,3)=-(A(1,2)*A(2,3)+A(1,3)*A(3,3))/A(1,1)
A(1,2)=-A(1,2)*A(2,2)/A(1,1)
A(1,1)=UN/A(1,1)
C
A(1,1)=A(1,1)+A(1,2)*A(2,1)+A(1,3)*A(3,1)
A(1,2)=A(1,2)+A(1,3)*A(3,2)
A(2,1)=A(2,2)*A(2,1)+A(2,3)*A(3,1)
A(2,2)=A(2,2)+A(2,3)*A(3,2)
A(3,1)=A(3,3)*A(3,1)
A(3,2)=A(3,3)*A(3,2)
C
RETURN
END