C IPLNU4    SOURCE    BP208322  21/01/28    21:15:13     10868          
      SUBROUTINE IPLNU4(A,D,INDX,ILONG,B,MM,K)
c
c fonction
c     Cette routine sert à resoudre un systeme lineaire non symmetrqiue
c     par la methode LU ( cf Numerical recipes in fortran 2nd edition)
c     la matrice a ete decomposé par iplnu3 sous la forme LU
c
c variables
c     a (E)  est un tableau nXn dont les npXnp 1er membre contienne la
c        matrice
c     indx (S) est un tableau de dimension n qui contiendra une tableau
c          d'indice de permuation
c     b (E/S) contient en entree le second membre c'est un tableau de
c        dim n. en sortie il contient la valeurs des inconnues
c
c date 18/07/94
c
c langage fortran pur
c
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)

C      SEGMENT MA
C     ce segment contient la matrice du syteme lineaire
C     a contient les termes et indx contient les indice de permutation
C     une fois la decomposition effectué
         REAL*8 A,D
         INTEGER INDX
         DIMENSION A(ILONG,*)
         DIMENSION INDX(*)
C      ENDSEGMENT

C      SEGMENT MB
         REAL*8 B
         DIMENSION B(ILONG,*)
C      ENDSEGMENT

      N = ILONG
      II=0
      DO 12 I=1,N
        LL=INDX(I)
        SUM=B(LL,k)
        B(LL,K)=B(I,K)
        IF (II.NE.0)THEN
          DO 11 J=II,I-1
            SUM=SUM-A(I,J)*B(J,K)
11        CONTINUE
        ELSE IF (SUM.NE.0.) THEN
          II=I
        ENDIF
        B(I,K)=SUM
12    CONTINUE
      DO 14 I=N,1,-1
        SUM=B(I,K)
        IF(I.LT.N)THEN
          DO 13 J=I+1,N
            SUM=SUM-A(I,J)*B(J,K)
13        CONTINUE
        ENDIF
        B(I,K)=SUM/A(I,I)
14    CONTINUE
      RETURN
      END


 
