Author(s): G.A. Erskine | Library: KERNLIB |
Submitter: | Submitted: 01.09.1983 |
Language: Fortran | Revised: 27.11.1984 |
Subroutine subprograms RBEQN and DBEQN solve a system of N simultaneous linear equations with K right-hand sides, the coefficient matrix being a band matrix with bandwidth 2M+1:
Only those coefficients for which need be supplied on entry (see Usage).
Structure:
SUBROUTINE subprograms
User Entry Names: RBEQN, DBEQN
Files Referenced: Printer
External References: KERMTR, ABEND
Usage:
For (type REAL), (type DOUBLE PRECISION),
CALL tBEQN(N,M,ABAND,IDIM,IFAIL,K,B)
On entry, ABAND must contain the packed form of the coefficient matrix as described below, and array B must contain the matrix of right-hand sides . Then, provided the coefficient matrix is non-singular, IFAIL will be set to 0 and the solution will replace in B. The contents of ABAND are destroyed. If the coefficient matrix is singular, IFAIL will be set to -1. In this case the contents of ABAND and B are unpredictable.
The storage convention for ABAND is that it must contain, on entry, those coefficients for which , stored "left-justified" as an array of N rows and at most columns. For example, if and , the coefficient matrix
where X denotes elements whose value need not to be set.
If ALPHA(I,J) is a function subprogram or statement function which computes , the following Fortran statements will set ABAND correctly:
DO 2 I =1,N L = 1 DO 1 J = MAX(I-M,1),MIN(I+M,N) ABAND(I,L) = ALPHA(I,J) L = L+1 1 CONTINUE 2 CONTINUE
Method:
Gaussian elimination with row interchanges. The storage organization is as described in the reference.
Error handling:
If the integer arguments do not satisfy the conditions , a message is printed and program execution is terminated by calling ABEND (Z035).
References: