Mercurial > hg > octave-lyh
view libcruft/qpsol/lpdump.f @ 2988:daa1ed1f5462
[project @ 1997-05-16 07:23:15 by jwe]
author | jwe |
---|---|
date | Fri, 16 May 1997 07:23:17 +0000 |
parents | 30c606bec7a8 |
children |
line wrap: on
line source
SUBROUTINE LPDUMP( N, NCLIN, NCTOTL, NROWA, * LCRASH, LP, MINSUM, NAMED, VERTEX, * ISTATE, A, AX, BL, BU, CVEC, X ) C C IMPLICIT REAL*8(A-H,O-Z) LOGICAL LP, MINSUM, NAMED, VERTEX INTEGER N, NCLIN, NCTOTL, NROWA, LCRASH INTEGER ISTATE(NCTOTL) DOUBLE PRECISION A(NROWA,N), AX(NROWA), BL(NCTOTL), BU(NCTOTL) DOUBLE PRECISION CVEC(N), X(N) C INTEGER NOUT, MSG, ISTART DOUBLE PRECISION WMACH COMMON /SOLMCH/ WMACH(15) COMMON /SOL1CM/ NOUT, MSG, ISTART C C ********************************************************************* C LPDUMP PRINTS A, BL, BU, CVEC, X, A*X, C COLD, LP, MINSUM, NAMED, VERTEX, AND POSSIBLY ISTATE. C C SYSTEMS OPTIMIZATION LABORATORY, STANFORD UNIVERSITY. C VERSION OF APRIL 1982. REV. OCT. 1982. C ********************************************************************* C INTEGER I, J, K, LROWA DOUBLE PRECISION ATX, DOT C C PRINT WMACH AND THE LOGICALS. C WRITE (NOUT, 1000) DO 10 I = 1, 11 WRITE (NOUT, 1100) I, WMACH(I) 10 CONTINUE WRITE (NOUT, 1200) LCRASH, LP, MINSUM, NAMED, VERTEX C C PRINT A BY ROWS AND COMPUTE AX = A*X. C IF (NCLIN .EQ. 0) GO TO 200 LROWA = NROWA*(N - 1) + 1 DO 100 K = 1, NCLIN WRITE (NOUT, 1500) K WRITE (NOUT, 1600) (A(K,J), J=1,N) AX(K) = DOT( N, A(K,1), LROWA, NROWA, X, N, 1 ) 100 CONTINUE C C PRINT BL, BU AND X OR AX. C 200 WRITE (NOUT, 2000) DO 300 J = 1, NCTOTL IF (J .GT. N) GO TO 250 K = J ATX = X(J) GO TO 290 C 250 K = J - N ATX = AX(K) IF (K .EQ. 1) WRITE (NOUT, 2100) C 290 WRITE (NOUT, 2200) K, BL(J), BU(J), ATX 300 CONTINUE C C PRINT CVEC, ISTATE. C IF (LP ) WRITE (NOUT, 3000) (CVEC(I) , I=1,N) IF (LCRASH .GT. 0) WRITE (NOUT, 3100) (ISTATE(J), J=1,NCTOTL) RETURN C 1000 FORMAT(1H1 / 19H OUTPUT FROM LPDUMP / 19H ******************) 1100 FORMAT(/ 7H WMACH(, I2, 3H) =, G15.6) 1200 FORMAT(/ 9H LCRASH =, I3, 4X, 9H LP =, L3, 4X, * 9H MINSUM =, L3, 4X, 9H NAMED =, L3, 4X, * 9H VERTEX =, L3) 1500 FORMAT(/ 4H ROW, I6, 11H OF A ...) 1600 FORMAT(5G15.6) 2000 FORMAT(/ 14X, 42HJ BL(J) BU(J) X(J)) 2100 FORMAT(/ 14X, 42HI BL(N+I) BU(N+I) A(I)*X) 2200 FORMAT(I15, 3G15.6) 3000 FORMAT(/ 9H CVEC ... / (5G15.6)) 3100 FORMAT(/ 11H ISTATE ... / (10I4)) C C END OF LPDUMP END