dgesl Subroutine

public subroutine dgesl(A, Lda, N, Ipvt, B, Job)

NAME

dgesl(3f) - [M_odepack::matrix] Solve the real system AX=B or TRANS(A)X=B using the factors computed by DGECO or DGEFA.

SYNOPSIS

subroutine dgesl(A,Lda,N,Ipvt,B,Job)
integer,intent(in)          :: Lda
real(kind=dp)               :: A(Lda,*)
integer,intent(in)          :: N
integer,intent(in)          :: Ipvt(*)
real(kind=dp),intent(inout) :: B(*)
integer,intent(in)          :: Job

DESCRIPTION

DGESL solves the double precision system

    A * X = B  or  TRANS(A) * X = B

using the factors computed by DGECO or DGEFA.

Error Condition

    A division by zero will occur if the input factor contains a
    zero on the diagonal.  Technically this indicates singularity
    but it is often caused by improper arguments or improper
    setting of LDA .  It will not occur if the subroutines are
    called correctly and if DGECO has set RCOND .GT. 0.0
    or DGEFA has set INFO .EQ. 0 .

To compute INVERSE(A) * C where C is a matrix with P columns

       CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
       IF (RCOND is too small) GO TO ...
       DO J = 1, P
          CALL DGESL(A,LDA,N,IPVT,C(1,J),0)
       ENDDO

ON ENTRY

A

the output from DGECO or DGEFA.

LDA

the leading dimension of the array A .

N

the order of the matrix A .

IPVT

the pivot vector from DGECO or DGEFA.

B

the right hand side vector.

JOB : = 0 to solve AX = B , = nonzero to solve TRANS(A)X = B where TRANS(A) is the transpose.

ON RETURN

B

the solution vector X .

REFERENCES

J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart, LINPACK Users’ Guide, SIAM, 1979.

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: A(Lda,*)
integer, intent(in) :: Lda
integer, intent(in) :: N
integer, intent(in) :: Ipvt(*)
real(kind=dp), intent(inout) :: B(*)
integer, intent(in) :: Job

Calls

proc~~dgesl~~CallsGraph proc~dgesl M_odepack::dgesl proc~daxpy~2 M_odepack::daxpy proc~dgesl->proc~daxpy~2

Called by

proc~~dgesl~~CalledByGraph proc~dgesl M_odepack::dgesl proc~daigbt~2 M_odepack::daigbt proc~daigbt~2->proc~dgesl proc~dainvg~2 M_odepack::dainvg proc~dainvg~2->proc~dgesl proc~dpjibt~2 M_odepack::dpjibt proc~dpjibt~2->proc~dgesl proc~dslsbt~2 M_odepack::dslsbt proc~dslsbt~2->proc~dgesl proc~dsolsy~2 M_odepack::dsolsy proc~dsolsy~2->proc~dgesl proc~dlsodi~2 M_odepack::dlsodi proc~dlsodi~2->proc~dainvg~2 proc~dlsoibt~2 M_odepack::dlsoibt proc~dlsoibt~2->proc~daigbt~2