1 subroutine dpbsl(abd,lda,n,m,b)
4 double precision abd(lda,n),b(n)
6 c dpbsl solves the double precision symmetric positive definite
8 c using the factors computed by dpbco or dpbfa.
12 c abd double precision(lda, n)
13 c the output from dpbco or dpbfa.
16 c the leading dimension of the array abd .
19 c the order of the matrix a .
22 c the number of diagonals above the main diagonal.
24 c b double precision(n)
25 c the right hand side vector.
29 c b the solution vector x .
33 c a division by zero will occur if the input factor contains
34 c a zero on the diagonal. technically this indicates
35 c singularity but it is usually caused by improper subroutine
36 c arguments. it will not occur if the subroutines are called
37 c correctly and info .eq. 0 .
39 c to compute inverse(a) * c where c is a matrix
41 c call dpbco(abd,lda,n,rcond,z,info)
42 c if (rcond is too small .or. info .ne. 0) go to ...
44 c call dpbsl(abd,lda,n,c(1,j))
47 c linpack. this version dated 08/14/78 .
48 c cleve moler, university of new mexico, argonne national lab.
50 c subroutines and functions
57 double precision ddot,t
60 c solve trans(r)*y = b
66 t = ddot(lm,abd(la,k),1,b(lb),1)
67 b(k) = (b(k) - t)/abd(m+1,k)
77 b(k) = b(k)/abd(m+1,k)
79 call daxpy(lm,t,abd(la,k),1,b(lb),1)