SUBROUTINE DLSLRG(N,A,LDA,B,IPATH,X) IMPLICIT DOUBLE PRECISION(A-H,O-Z) parameter(ldiscr=10000) common/iscrb/iscrb(ldiscr) parameter(ldd2scr=100) common/dscrb/d2scrb(ldd2scr,ldd2scr) DIMENSION A(LDA,*),B(N),X(N) if(n.gt.ldiscr) go to 100 if(n.gt.ldd2scr) go to 150 DO 10 I=1,N X(I)=B(I) 10 CONTINUE DO 20 I=1,N DO 30 J=1,N d2scrb(I,J)=A(I,J) 30 CONTINUE 20 CONTINUE CALL DGETRF(N,N,d2scrb,ldd2scr,iscrb,INFO) IF (IPATH.EQ.1) THEN CALL DGETRS('N',N,1,d2scrb,ldd2scr,iscrb,X,N,INFO) ELSE CALL DGETRS('T',N,1,d2scrb,ldd2scr,iscrb,X,N,INFO) ENDIF return 100 call err(n,'ldiscr','iscrblk') return 150 call err(n,'ldd2scr','d2scrblk') RETURN END