diff options
Diffstat (limited to 'Donjon/src/PLNTAB.f')
| -rw-r--r-- | Donjon/src/PLNTAB.f | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Donjon/src/PLNTAB.f b/Donjon/src/PLNTAB.f new file mode 100644 index 0000000..1e8a476 --- /dev/null +++ b/Donjon/src/PLNTAB.f @@ -0,0 +1,90 @@ +*DECK PLNTAB
+ SUBROUTINE PLNTAB(GF,APLUS,INPLUS,BPLUS,XITK,XINF,XSUP,NDEC,M0,
+ > SRCNAM)
+*----------------------------------------------------------------------*
+* *
+*Purpose:
+* Print the arrays of the linear optimization problem.
+*
+*Copyright:
+* Copyright (C) 2002 Ecole Polytechnique de Montreal
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version
+*
+*Author(s):
+* R. Chambon
+*
+*Parameters: input
+* GF costs of control variables.
+* APLUS coefficient matrix for the linear constraints.
+* INPLUS constraint relations (=-1 for .GE.; =0 for .EQ.; =1 for .LE.).
+* BPLUS right hand sides corresponding to the coefficient matrix.
+* XITK weights assigned to control variables in the quadratic
+* constraint.
+* XINF lower bounds of control variables.
+* XSUP upper bounds of control variables.
+* NDEC number of control variables.
+* M0 number of constraints plus the number of lower/upper bounds
+* intercepting the quadratic constraint.
+* SRCNAM character text to print.
+*
+*-----------------------------------------------------------------------
+*
+ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*----
+* SUBROUTINE ARGUMENTS
+*----
+ INTEGER M0
+ DOUBLE PRECISION BPLUS(M0+2),XITK(NDEC),XINF(NDEC),XSUP(NDEC),
+ > GF(NDEC),APLUS(M0+2,NDEC)
+ INTEGER INPLUS(M0+1)
+ CHARACTER*(*) SRCNAM
+*----
+* LOCAL VARIABLES
+*----
+ CHARACTER*2 CTYPES(-1:1)
+ CHARACTER*80 FMT
+*
+ DATA CTYPES / '>=',' =','<=' /
+*
+ WRITE(6,1000) SRCNAM
+*
+ IF (NDEC.GT.8) THEN
+ RETURN
+ ELSE
+ FMT = '(1P,XXE13.5,5X,A3,5X,1P,E13.5)'
+ NVAL = NDEC
+ ENDIF
+*
+ IDX = INDEX(FMT,'X')
+ WRITE(FMT(IDX:IDX+1),'(I2.2)') NVAL
+*----
+* PRINT CONTROL-VARIABLE COSTS
+*----
+ WRITE(6,2000) (I,I=1,NDEC)
+ WRITE(6,3000) (GF(I),I=1,NDEC)
+*----
+* PRINT COEFFICIENT MATRIX
+*----
+ IF(M0.GT.0) THEN
+ WRITE(6,4000)
+ DO 10 J=1,M0
+ WRITE(6,FMT) (APLUS(J,I),I=1,NDEC),CTYPES(INPLUS(J)),BPLUS(J)
+ 10 CONTINUE
+ ENDIF
+*
+ WRITE(6,5000) (XINF(I),I=1,NDEC)
+ WRITE(6,6000) (XSUP(I),I=1,NDEC)
+ WRITE(6,7000) (XITK(I),I=1,NDEC)
+ RETURN
+*
+1000 FORMAT(//,5X,'PRINT LINEARIZED OPTIMIZATION PROBLEM IN ',A,/)
+2000 FORMAT( /,5X,'COST(NDEC)',//,(10(5X,I3,5X)),//)
+3000 FORMAT((1P,10E13.5))
+4000 FORMAT( /,5X,'APLUS(M0,NDEC)',35X,'INPLUS(M0)',35X,'BPLUS(M0)',/)
+5000 FORMAT( /,5X,'XINF(NDEC) ',//,(1P,10E13.5))
+6000 FORMAT( /,5X,'XSUP(NDEC) ',//,(1P,10E13.5))
+7000 FORMAT( /,5X,'WEIGHT(NDEC)',//,(1P,10E13.5))
+ END
|
