invmtx.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\invmtx.f
00002 !
00059                      SUBROUTINE INVMTX
00060 !                    *****************
00061 !
00062      &(AM,BM,NP)
00063 !
00064 !***********************************************************************
00065 ! BIEF   V6P1                                   21/08/2010
00066 !***********************************************************************
00067 !
00068 !
00069 !
00070 !
00071 !
00072 !
00073 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00074 !| AM             |-->| MATRIX TO BE INVERTED
00075 !| BM             |<--| INVERTED MATRIX
00076 !| NP             |-->| RANK OF MATRICES AM AND BM.
00077 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00078 !
00079       IMPLICIT NONE
00080       INTEGER LNG,LU
00081       COMMON/INFO/LNG,LU
00082 !
00083 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00084 !
00085       INTEGER, INTENT(IN)             :: NP
00086       DOUBLE PRECISION, INTENT(INOUT) :: AM(NP,NP),BM(NP,NP)
00087 !
00088 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00089 !
00090       INTEGER INDX(500),N,I,J
00091 !
00092 !-----------------------------------------------------------------------
00093 !
00094       IF(NP.GT.500) THEN
00095         WRITE(LU,*) 'NP MUST BE LESS THAN 500 IN INVMTX'
00096         CALL PLANTE(1)
00097         STOP
00098       ENDIF
00099 !
00100       N = NP
00101       DO I=1,N !SET UP IDENTITY MATRIX
00102         DO J=1,N
00103           BM(I,J)=0.D0
00104         ENDDO
00105         BM(I,I)=1.D0
00106       ENDDO
00107 !
00108 !     DECOMPOSES THE MATRIX JUST ONCE
00109 !
00110       CALL LUDCMP(AM,N,NP,INDX)
00111 !
00112 !     FINDS INVERSE BY COLUMNS
00113 !
00114       DO J=1,N
00115         CALL LUBKSB(AM,N,NP,INDX,BM(1,J))
00116       ENDDO
00117 !
00118 !-----------------------------------------------------------------------
00119 !
00120       RETURN
00121       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0