HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 13 Sparse Linear Equations 887
Sample program
Sample program for a symmetric matrix:
INTEGER*4 I,J,K,NEQNS,IROW(NNZERO),JCOL(NNZERO),INRTIA(3),IER
REAL*8 RCOND,GLOBAL(150),MXVALU(NNZERO),PVTTOL,VALUE
C
C ... INITIALIZE THE SPARSE MATRIX PACKAGE
C
CALL DSLEIN (NEQNS,1,6,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
C
C ... INPUT THE MATRIX STRUCTURE (LOWER TRIANGULAR)
C
DO 100 K = 1, NNZERO
I = IROW(K)
J = JCOL(K)
CALL DSLEI1 (I,J,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
100 CONTINUE
CALL DSLEIF (GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
C
C ... REORDER THE MATRIX
C
CALL DSLEOR (0,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
C -
C ... INPUT MATRIX VALUES (LOWER TRIANGULAR)
C -
DO 200 K = 1, NNZERO
I = IROW(K)
J = JCOL(K)
VALUE = MXVALU(K)
CALL DSLEV1 (I,J,VALUE,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
200 CONTINUE
C -
C ... FACTOR THE MATRIX AND ESTIMATE ITS CONDITION NUMBER
C -
PVTTOL = 0.1D0
CALL DSLECO (PVTTOL,RCOND,INRTIA,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000
C -
C ... SOLVE FOR A GIVEN RIGHT HAND SIDE
C -
CALL DSLESL (1,RHS,NEQNS,GLOBAL,IER)
IF ( IER .NE. 0 ) GO TO 8000