1986-13 Spring 1986
SOUTHERN METHODIST UNIV. GAJVIs/MPSX Intetj ace
Lawrence E. McPhail
GAMS/MPSX INTERFACE
by
LAWFENCE
Dr. Richard Barr OREM 4390
Senior Design
- i '.. k ) k I \. \ I I 1 \ L ' I J I I I
SCHOOL OF ENGINEERING AND APPLIED SCIENCE
DALLAS, TEXAS 727
GAMS/MPSX INTERFACE
by
LAWRENCE E. MCPHAIL
Prepared for: Dr. Richard Barr
OREM 4390 Senior Design
ABSTRACT
This report briefly describes the General Algebraic Modeling System (GAMS), and some of its commands. Also, integer programming is discussed. Finally, a description of the implementation process for the GAMS/MPSX interface is presented.
10 May 1986
GANS/MPSX INTERFACE FOOTNOTES AND SOURCES
I I I
GAI4S/MPSX INTERFACE
TABLE OF CONTENTS
PART I: INTRODUCTION TOGAMS ...................3 General form of the GAMS statement
GAMS Input SETS Keyword
DATA SOLUTION
GAMS Output Echo Print
Symbol Listing Equation Listing Column Listing
Model Statistics Solution Report
PART II: INTEGER PROGRAMMING ................... 7
PART III: THE INTERFACE TO MPSX/370 ............ 9
SUI414.A1Y ........................................11
INTRODUCTION
The General Algebraic Modeling System (GAMS) I allows the user to concisely state his models in a language that is easily understood by both the computer and the modeler. The subject of this paper is first, the
l
GAMS language, and second, the implementation of an interface between GAMS and the IBM Mixed Integer Programming/370 (MIP/370), which is part of the IBM
Mathematical Programming System Extended/370
I (MPSX/370), to allow GAMS to access the integer programming power of MIP/370. In this paper, we will show what has been done to implement this interface, and
I
what has yet to be accomplished.
The explanation of GAMS in this paper, and the discussion of Integer Programming and the computer I interface to MPSX/370, assumes that the reader is familiar with the basics of modeling systems and linear programming. The discussion of the computer interface
Iwill assume some prior knowledge of computer systems.
1 GAMS/MPSX INTERFACE
PART I: GAMS
PART I: INTRODUCTION TO GAMS
I
The General Algebraic Modeling System, or GAMS, was first in use at the International Bank for Research and Development (the World Bank) in 1980. Alexander Meeraus, responsible for much of the computer programming at the I World Bank, realized that a modeling system could eliminate many of the problems that the economists and computer programmers at the World Bank were having with I developing optimization models and large simulations of different sectors of world industry. The economists would not recognize their model once it had been put I into a form that the computers could understand, and the programmers spent long hours finding errors in the FORTRAN programs that they wrote to solve each economists model.
The prototype of GAMS was in use at the World Bank, and also at the University of Texas at Austin, where David Kendrick taught economic modeling to graduate students. GAMS has still not been officially released, but its success at these two, and other institutions (such as SMU) , has been documented.
This introduction to GAMS will be very brief, and is based on GAMS: An Introduction, by Kendrick and Meeraus. The text that we have used is a February 1985 draft of the manual, as presented to Dr. Richard Barr, SMU department of Operations Research and Engineering Management. Unless otherwise noted, all reference in this section is drawn from this text.
GENERAL FORM OF THE GAMS STATEMENT
The general form of the GAMS statement is this:
(keyword) (declaration) (definition)
I where the keyword is one of the recognized keywords from the set of GAMS keywords such as SET, PARAMETER, SCALAR, VARIABLES, etc. The declaration pertains to the command that has been issued, and usually contains a name, and a I description or range for the operator that is being used. The definition portion of the keyword includes such items as a list of elements in a set, the value of I a variable or list of variables, or the elements of a matrix of constants (used with the TABLE keyword).
I GAMS INPUT
The input to GAMS takes several forms:
MCPHAIL, 3
GAMS/MPSX INTERFACE
PART I: GAllS
SETS
Sets can be used to make a model statement easy to read. They are an efficient way to state many economic models. The SET keyword is used in this manner:
SET PRICES PRICES OF COMMODITIES
/ GOLD-PRICE GOLD DOLLARS PER OUNCE SIL-PRICE SILVER DOLLARS PER OUNCE!
The keywords all start anywhere but in the first column, which is reserved for comments and print commands. The descriptor (in this case, PRICES OF COMMODITIES) is optional. The identifier (PRICES) can be up to ten characters long, and can not contain any embedded blanks. The elements of the set (also called labels) can be up to ten characters long with no embedded spaces, and may also have descriptors associated with them.
DATA
Data element statements take several form, based on the data being provided. The SCALAR keyword identifies constants that are to be used in the model. The keyword PARAMETER signifies a list of constants. For two-way, or matrix, constants, the keyword is TABLE. All names of definitions for constants allow descriptors as well.
EQUATIONS AND MODELING CONSTRAINTS
' GAMS provides for equality and inequality equations, using the symbols =E=, =G=, and =L=. The constraints can be labeled with text descriptors, for use in the report, such as AVAILABILITY CONSTRAINT, or SUPPLY CONSTRAINT. I
GAMS allows the user to specify equations to be used during solution, although the common entry is /ALL/.
I SOLUTION
The GAMS language provides for several solution I parameters to be supplied by the user. GAMS also allows several SOLVE statements, allowing the model to be evaluated over several conditions, or using different equations. This sample of the SOLVE statement is taken
Ifrom the Newhaven Busing Proposal Case:
SOLVE NEWHAVEN USING LP MINIMIZING TOTDIST I In this statement, the user tells GAMS to solve the model called NEWHAVEN using Linear Programming methods I with the objective of minimizing the variable TOTDIST, which the user has described as the total student-miles
MCPHAIL, 4
IGAMS/MPSX INTERFACE
PART I: CAMS
traveled."
There is a statement available to the user that we will discuss primarily because our project will be concerned with using this statement. The OPTION statement provides the user with the capability to tell GAMS to use a different optimizer or system package to arrive at the solution. For instance, the statement could read:
OPTION LP = MINOS5
which instructs GAMS to use the MINOS system. We will implement an interface package that will allow the user to specify:
OPTION NP (or RI4IP) = MPSX
This will allow GAMS to access the IBM Mixed Integer Programming/370 package on the MPSX/370 system to solve mixed integer programming problems. RMIP stands for Relaxed Mixed Integer Programming, which simply means that the constraints requiring a variable to be of the type INTEGER are ignored. We will discuss this interface in part three of this report.
CAMS OUTPUT
The GAMS output comes in several parts. They are:
ECHO PRINT
The Echo Print is simply a listing of your GAMS data file, except that it has line numbers associated with the statements, and has the title that you specified for your model printed in the upper left hand corner of the page (as do all subsequent pages). The echo print does not introduce any new information.
SYMBOL LISTING
The next output item, the Symbol Listing, is a reference summary of all of the data names, variables, and equations used in the model. Each symbol is listed in a table, along with its type and any references to it, and is then grouped with similar type symbols and printed with its text description. This listing is a useful reference for the user as to all symbols used in the model.
EQUATION LISTING
The Equation Listing provides a reference to the equations used, their type, and the text description.
1 This listing also replaces data names with the actual
MCPHAIL, 5
IGAMS/MPSX INTERFACE PART I: GAMS
I values, so that the user can refer to the equation in a form that he is used to seeing it in. This also puts all equations into standard form.
COLUMN LISTING
This portion of the output gives part of the columnar listing for the variables involved in the model.
MODEL STATISTICS
Model Statistics provides the user with information about the model itself, such as numbers of major and minor rows and columns, the time it took to generate the model, and the execution time, among other data.
SOLUTION REPORT
The Solution Report is the part of the output that tells the user what was determined about the model and the variables. The report starts with a summary of the solution, then gives the user information about the constraints, definition equations, and finally, if the model was solved, the optimal values for the variables. If the model was insoluble, had non-optimal solutions, was unbounded, or infeasible, the solution report would give the user information to this effect as well.
This was a brief introduction to the GAMS language itself. For a detailed reading, contact Dr. Barr for a copy of the report by Meeraus and Kendrick.
MCPHAIL, 6
GAMS/MPSX INTERFACE PART II: INTEGER PROGRAMMING
PART II: INTEGER PROGRAMMING
In most applications, the preferred solution to a linear programming model would have variables with integer values. If you presented Lee Iacocca with a recommendation to build 576,972.42 Chryslers, nobody would much notice if he rounded the number up or down. However, if you presented a plan to a city manager to build 1.42 new schools, a lot of construction companies, taxpayers, and parents would be very interested in the rounding of the number. In general, if the solution is relatively small, one would prefer integer values for the variables. In the case of large solutions, the effect of rounding a continuous variable is less noticeable. Of course, one can come up with exceptions to this, as any, rule.
There are several classes of integer programming. There is pure integer or all-integer problem is one in which all variables are integer variables. In mixed integer problems, some, but not all, of the variables are integer variables. In 0/1 problems, the variable can only take on a value of zero or one. This is in contrast to general integer , problems, which simply restrict the variable to an integer value in any feasible solution.
In continuous linear programs (that is, linear programs without integer variables), the solution time generally increases fairly proportionally to the number of variables, and approcimately with the square of the number of constraints-i-. Integer programs, however, may actually solve quicker with additional constraints, or these additional constraints may dramatically increase the amount of time necessary to arrive at a solution.
The following example, from the book Linear. Integer, and quadratic PrograMaing with LINDO, by Linus Schrage is an example of a 0/1 Integer Program (the LINDO solution is in the appendix at the end of this report)
MAX 75 X1 + 6 X2 + 3 X3 + 33 X4
1 SUBJECT TO 2) 774 X1 + 76 X2 + 22 X3 + 42 X4 <= 875 3) 67 X1 + 27 X2 + 794 X3 + 53 X4 <= 875
1 Xl, X2, X3, X4 RESTRICTED TO 0, 1.
This example was used by Schrage to illustrate the Branch and Bound technique of solving integer programs.
Other applications of integer programs include capital
1 investments, fixed charge, cost curves (with economies
MCPHAIL, 7
GAMS/MPSX INTERFACE PART II: INTEGER PROGRAMMING
of scale, and either-or constraints.
Several algorithms have been developed for solving integer problems, although the Branch and Bound method has proven most reliable, and virtually all commrcial code uses this method to solve integer programs'. The figure below illustrates branch and bound methodology.
Other algorithms include Gomory's Cut Algorithms, including The Gomory fractional algorithm, The Gomory all-integer algorithm, and The Gomory mixed-integer algorithm; The Intersection Cut, Young's Prima Algorithm, and Glover's Primal Algorithm, among others.
Start
a Solve corresponding linear progra in in in g problem
)oes 'Inn se J11 irit eger Yes Sol ution No vaiiihIc
optimum satisfy integer whose solution value i5. constraints IS not integer.
' Solve 2 problems, cacti having adjoined the following con-straints. one at i time:
ti' 5 I li' 5 I + I
Fxelule any infeasible solutions troin lurlher consideration.
I Of [lie newly determined linear programming solution(s), add it (them) to the list if its (their) objective function is better than any known integer solution
Select solution with the maxim objective function value troini list. II list is empty, halt there Is no feasible integer solution to the problem.
(This chart is from ZIONTS, page 416)
MCPHAIL, 8
GAMS/MPSX INTERFACE PART III: THE MPSX INTERFACE
PART III: THE INTERFACE TO MPSX/370
Originally, this project was to design and implement an interface from GAMS to MPSX. This turned out to be much harder than first anticipated. Documentation of the file structures for.output files from MPSX was negligible. Then, Dr. Barr discovered that the interface had already been done at the Computing Center at the University of Texas/Austin, so the project evolved to its present state of implementation of the Austin package on the VM system here at Southern Methodist University. Dr. Barr received the files that were necessary from Chung—Hsing Huang (Steve), a graduate student at UT/Austin. These consisted of seventeen files: seven help files, a PASCAL program, a FORTRAN program, a data file, and seven EXEC, or program control, files. Initially, after receiving approval from the SMU Computing Center to go ahead with the project, the PASCAL program was compiled and indicated numerous errors. We inspected the source code, and determined that the majority of the errors were caused by a difference in the default margins of our compiler and the UT/Austin compiler. After correcting this error, the PASCAL program compiled without error. The next step was to work on the EXEC, or control, files. EXEC files control the flow of the program between different packages on the system, and allow the programmer to access software in other areas of the computer's virtual and disk memory. This allows the program to run in a manner termed invisible to the user of the software package; that is, the user is unaware of the instructions that the computer has performed to access various software packages, and makes it unecessary for the user to perform these commands. Upon inspection, it was determined that modifications would have to be made to allow for the fact that the UT/Austin system had the various packages stored on different disks than the VM system here at SMU. This was expected, and constitutes the personalization of the software to conform to our system specifications. Upon the completion of the modifications to the EXEC files, the system package will be tested, and on succesful completion of the tests, added to the VM system programs, available to all users. This paper can not go into the details of inspection and debugging or modification of the source code and EXEC files, due to lack of space and minimal interest in the procedure.
Once the system is available to all users, it will be accessed as described in Part I, through an invocation of the OPTIONS statement:
OPTIONS NP (or RMIP) = MPSX
MCPHAIL, 9
IGAMS/MPSX INTERFACE PART III: THE MPSX INTERFACE
This specification of the MPSX package will invoke the MPSX EXEC file, which tells the computer how to go about using the MPSX package to solve the problem. The GAMS information is translated into a form that MPSX understands, and MPSX operates upon the data, creating an output file, which is translated back into a format that can be used by GAMS to produce the GAMS report as earlier described. The user will see information on the screen telling him what process the system is in, but he willnot be required to use any system commands to activate the process. Once the GAMS documentation is available to people using the system, documentation for
the
MPSX interface will be included to instruct users in the correct usage of the package. This package will be of special interest to the faculty and students in the
OREM
department, and could be used in classes on linear and integer programming and for projects and assignments in the coming years.
MCPHAIL, 10
IGAMS/MPSX INTERFACE SUMMARY
SUMMARY
The concise, friendly modeling language, GAMS, can be
I used to develop and solve models in a way that both the computer and the modeler can easily understand. The consistant statement structure, convenient output summaries and reports, and the "plain English" type
' source code make for a system that is easy to understand and use, and yet provides extremely useful information.
I Integer Programming involves pure (or all) integer programming, mixed-integer programming, 0/1 problems, and general integer problems. The most common technique for solving integer programs in commercial code is the Branch and Bound technique.
The GAMS/MPSX interface involves the inspection and I preparation of PASCAL and FORTRAN programs, and EXEC, or program control, files. The package was received from the University of Texas at Austin, and implemented on I the VM system here at Southern Methodist University. Documentation will be provided when a GAMS manual is put together for the users on the SMU VM system. This package is ideal for use in OREM classes on linear and I integer programming, and for projects and assignments in the future.
MCPHAIL, 11
SOURCES
Linear and Integer Programming Zionts, Stanley. 1974, Prentice-Hall, Inc., Englewood . Cliffs, New Jersey
Linear. Integer. and quadratic Programming with LINDO Schrage, Linus. 1981, 1984, The Scientific Press Palo Alto, California
GAMS: An Introduction Kendrick, David and Alexander Meeraus. 1985, The World Bank
FOOTNOTES
1. SCHRAGE, page 186.
2. IBID., page 191.
3. ZIONTS, pages 343-370
Throughout the report, various ideas have been drawn from all three works. These distillations have not been attributed, due to the combinatory and random reference to the ideas, rather than the words of the writings.
APPENDIX
A. EXAMPLE GAMS PROBLEM AND SOLUTION 1. Data File
2. GAMS Output
B. LINDO EXAMPLE (INTEGER PROGRAMMING)
C. LISTINGS OF INTERFACE FILES 1. EXEC Files 2. Data File 3. Programs
FILE: INFORMAl INFO Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 001
THE FILES IN THIS APPENDIX (WITH THE EXCEPTION OF TEMPSX PASCAL) ARE IN THE ORIGINAL FORMAT IN WHICH THEY WERE RECEIVED FROM UNIVERSITY OF TEXAS AUSTIN.
IF ONE WOULD ATTEMPT TO RUN THESE FILES, OR USE THEM IN ANY WAY, THE BENEFIT OF THE PERSONALIZATION PROCESS FOR SOFTWARE WOULD BE IMMEDIATELY APPARANT.
IF THERE ARE ANY QUESTIONS, PLEASE DIRECT INQUIRIES TO:
LAWRENCE E. MCPHAIL C/O PROMAX ASSOCIATES 5015 TRACY STREET SUITE 203 DALLAS, TEXAS 75205 (214) 522-2449
Originating Linkid: SMUVM1
Originating Userid: E4MI0014
Distribution Code: B1N695
Spool file number: 8901
File Size - Recs: 00000044
File name and type: GAMS1 GAMS
44*41* Origin Time/Date: 5/13/86 1:31:24 C.D.T. 44*44* 44*44* *44*44 *44*41 *44*44 *4444* 44*44*
FILE: GAMS1 GAMS Al VM/SP (CMS) R3.l 6/12/85 PUT8502
PAGE 001
STITLE A TRANSPORTATION PROBLEM (CANNERY,SEQ=l) * THIS PROBLEM FINDS A LEAST COST SHIPPING SCHEDULE THAT * MEETS REQUIREMENTS AT WAREHOUSES AND SUPPLIES AT CANNERIES. * * REFERENCE: G B DANTZIG, LINEAR PROGRAMMING AND EXTENSIONS, * PRINCETON UNIVERSITY PRESS, PRINCETON, NEW JERSEY, 1963. * (CHAPTER 3-3)
SETS I CANNERIES / SEATTLE, SAN-DIEGO J WAREHOUSES / NEW-YORK, CHICAGO, KANSAS-CTY
PARAMETER A(I) AVAILABLE INVENTORY (CASES OF TINS PER YEAR)
SEATTLE 350 SAN-DIEGO 600
PARAMETER R(J) REQUIRED INVENTORY (CASE OF TINS PER YEAR)
R(J) = 300;
TABLE C( I,J) UNIT TRANSPORT COST (DOLLARS PER CASE)
NEW-YORK CHICAGO KANSAS-CTY SEATTLE 25 17 18 SAN-DIEGO 25 18 14
VARIABLES X( I,J) SHIPMENTS (CASES OF TINS PER YEAR) TRCOST TRANSPORT COST (DOLLARS PER YEAR)
POSITIVE VARIABLE X;
EQUATIONS SUPPLY( I) AVAILABILITY CONSTRAINT DEMAND(J) REQUIREMENTS CONSTRAINT COST COST DEFINITION
SUPPLY( I) .. SUM(J, X( I ,J)) =L= A( I)
DEMAND(J) .. SUM(I,X(I,J)) =G= R(J)
COST.. TRCOST =E= SUM((I,J), C(I,J)*X(I,J))
MODEL CANNERY /ALL/
SOLVE CANNERY USING LP MINIMIZING TRCOST
Originating Linkid: SMIJVM1
Originating IJserid: E4161I0014
Distribution Code: B1N695
Spool file number: 8900
File Size - Recs: 00000270
File name and type: GAMS1 LISTING
Origin Time/Date: 5/13/86 4:31:24 C.D.T.
05/13/86 04:30:11 PAGE CAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1)
• THIS PROBLEM FINDS A LEAST COST SHIPPING SCHEDULE THAT • MEETS REQUIREMENTS AT WAREHOUSES AND SUPPLIES AT CANNERIES. * * REFERENCE: C B DAP4TZIG
'LINEAR PROGRAMMING AND EXTENSIONS,
* PRINCETON UNIVERSITY PRESS, PRINCETON, NEW JERSEY, 1963. * (CHAPTER 3-3)
SETS I CANNERIES / SEATTLE, SAN-DIEGO J WAREHOUSES / NEW-YORK, CHICAGO, KANSAS-CTY
PARAMETER A( I) AVAILABLE INVENTORY (CASES OF TINS PER YEAR)
SEATTLE 350 SAN-DIEGO 600
PARAMETER R(J) REQUIRED INVENTORY (CASE OF TINS PER YEAR)
R(J) = 300;
TABLE C(I,J) UNIT TRANSPORT COST (DOLLARS PER CASE)
NEW-YORK CHICAGO KANSAS-dY SEATTLE 25 17 18 SAN-DIEGO 25 18 14
VARIABLES X(I,J) SHIPMENTS (CASES OF TINS PER YEAR) TRCOST TRANSPORT COST (DOLLARS PER YEAR)
POSITIVE VARIABLE X;
EQUATIONS SUPPLY( I) AVAILABILITY CONSTRAINT DEMAND(J) REQUIREMENTS CONSTRAINT COST COST DEFINITION
SUPPLY( I) .. SUM(J, X( I ,J)) =L= A( I)
DEMAND(J) .. SUM( I, X( I,J)) =G= R(J)
COST.. TRCOST =E= SUM(( I,J), C( I,J)*X( I,J))
MODEL CANNERY /ALL/
SOLVE CANNERY USING LP MINIMIZING TRCOST
A TRANSPORTATION PROBLEM (CANNERY,SEQ1) 05/13/86 014:30:11 PAGE 2 SYMBOL LISTING GAMS 2.00 IBM CMS
TYPE REFERENCES
PARAM DECLARED PARAM DECLARED MODEL DECLARED EQIJ DECLARED EQU DECLARED SET DECLARED SET DECLARED
39 PARAM DECLARED EQU DECLARED VAR DECLARED VAR DECLARED
12 DEFINED 12 REF 35 21 DEFINED 21 REF 39 41 DEFINED 41 REF 43 33 DEFINED 39 IMPL-ASN 43 REF 41 32 DEFINED 37 IMPL-ASN 43 REF 41 9 DEFINED 9 REF 2*35 37 2*39 CONTROL 10 DEFINED 10 REF 35 2*37 2*39 CONTROL
17 ASSIGNED 19 REF 37 31 DEFINED 35 IMPL-ASN 143 REF 141 28 IMPL-ASN 43 REF 39 43 27 IMPL-ASN 43 REF 29 35 37 39
SYMBOL
A C CANNERY COST DEMAND
J
R SUPPLY TRCOST x
SETS
PARAMETERS
A C R
VARIABLES
TRCOST x
EQUATIONS
CANNERIES WAREHOUSES
AVAILABLE INVENTORY (CASES OF TINS PER YEAR) UNIT TRANSPORT COST (DOLLARS PER CASE) REQUIRED INVENTORY (CASE OF TINS PER YEAR)
TRANSPORT COST (DOLLARS PER YEAR) SHIPMENTS (CASES OF TINS PER YEAR)
35 37
39 19 35
37
COST COST DEFINITION DEMAND REQUIREMENTS CONSTRAINT SUPPLY AVAILABILITY CONSTRAINT
MODELS
CANNERY
COMPILATION TIME = 0.313 SECONDS
05/13/86 04:30:15 PAGE 3 GAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) EQUATION LISTING SOLVE CANNERY USING LP FROM LINE 43
SUPPLY =L= AVAILABILITY CONSTRAINT
SUPPLY(SEATTLE).. X(SEATTLE,NEW-YORK) + X(SEATTLE,CHICAGO) + X(SEATTLE,KANSAS-CTY) =L= 350
SUPPLY(SAN-DIEGO).. X(SAN-DIEGO,NEW-YORK) + X(SAN-DIEGO,CHICAGO) + X(SAN-DIEGO,KANSAS-CTY) =L= 600
DEMAND =G= REQUIREMENTS CONSTRAINT
DEMAND(NEW-YORK).. X(SEATTLE,NEW-YORK) + X(SAN-DIEGO,NEW-YORK) =G= 300
DEMAND(CHICAGO).. X( SEATTLE, CHICAGO) + X(SAN-DIEGO,CHICAGO) =G= 300
DEMAND( KANSAS-CTY).. X(SEATTLE,KANSAS-CTY) + X(SAN-DIEGO,KANSAS-CTY) =G= 300
COST =E= COST DEFINITION
COST.. - 25*X(SEATTLE,NEW_YORK) - 17*X(SEATTLE,CHICAGO) - 18*X(SEATTLE,KANSAS_CTY) - 25*X(SAN-DIEGO.NEW-YORK)
- 18*X(SAN_DIEGO,CHICAGO) - 14*X(SAN-DIEGO,KANSAS-CTY) + TRCOST =E= 0
05/13/86 04:30:15 PAGE 4 GAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) COLUMN LISTING SOLVE CANNERY USING LP FROM LINE 43
X SHIPMENTS (CASES OF TINS PER YEAR)
X( SEATTLE, NEW-YORK) (.LO, .L, .UP = 0, 0, +INF)
1 SUPPLY(SEATTLE)
1 DEMAND( NEW-YORK)
-25 COST
X(SEATTLE,CHICAGO) (.LO, .L, .UP = 0, 0, +INF)
1 SUPPLY(SEATTLE)
1 DEMAND(CHICAGO)
-17 COST
X( SEATTLE, KANSAS-CTY) (.LO, .L, .UP = 0, 0, +INF)
1 SUPPLY( SEATTLE)
1 DEMAND( KANSAS-CTY)
-18 COST
REMAINING 3 ENTRIES SKIPPED
TRCOST TRANSPORT COST (DOLLARS PER YEAR)
TRCOST(.LO, .L, .UP = -INF, 0, +INF)
1 COST
05/13/86 04:30:15 PAGE 5 GAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) MODEL STATISTICS SOLVE CANNERY USING LP FROM LINE 43
MODEL STATISTICS
NUMBER OF MAJOR ROWS = 3 NUMBER OF MINOR ROWS = 6 NUMBER OF MAJOR COLS = 2 NUMBER OF MINOR COLS = 7 NUMBER OF NON-ZEROES = 19 MODEL GENERATION =
EXECUTION TIME
0.096 SECONDS
0.416 SECONDS
05/13/86 04:30:22 PAGE 6 CAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) SOLUTION REPORT SOLVE CANNERY USING LP FROM LINE 43
SOLVE SUMMARY
MODEL CANNERY OBJECTIVE TRCOST TYPE LP DIRECTION MINIMIZE SOLVER MINOS3 FROM LINE 43
**** SOLVER STATUS 1 NORMAL COMPLETION **** MODEL STATUS 1 OPTIMAL **** OBJECTIVE VALUE 16800.0000
RESOURCE USAGE, LIMIT 0.060 1000.000 ITERATION COUNT, LIMIT 4 1000
MINOS 3.4/ALTERED
B. A. MURTAGH AND M. A. SAUNDERS, DEPARTMENT OF OPERATIONS RESEARCH, STANFORD UNIVERSITY, STANFORD CALIFORNIA 94305 U.S.A.
WORK SPACE NEEDED (ESTIMATE) -- 3978 WORDS. WORK SPACE AVAILABLE -- 100000 WORDS.
EXIT -- OPTIMAL SOLUTION FOUND.
EQU SUPPLY AVAILABILITY CONSTRAINT
LOWER LEVEL UPPER
SEATTLE -INF 350.0000 350.0000 SAN-DIEGO -INF 550.0000 600.0000
EQU DEMAND REQUIREMENTS CONSTRAINT
LOWER LEVEL UPPER
NEW-YORK 300.0000 300.0000 +INF CHICAGO 300.0000 300.0000 +INF KANSAS-CTY 300.0000 300.0000 +IIF
LOWER LEVEL
- --- EQU COST
COST COST DEFINITION
MARGINAL
E PS
MARGINAL
25. 0000 17.0000 14.0000
UPPER MARGINAL
1.0000
VAR X SHIPMENTS (CASES OF TINS PER YEAR)
LOWER LEVEL UPPER
SEATTLE .NEW-YORK . 50.0000 +INF SEATTLE .CHICAGO . 300.0000 +INF SEATTLE .KANSAS-CTY . . +INF
MARGINAL
4. 0000
05/13/86 04:30:22 PAGE 7 GAMS 2.00 IBM CMS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) SOLUTION REPORT SOLVE CANNERY USING LP FROM LINE 43
VAR X SHIPMENTS (CASES OF TINS PER YEAR)
LOWER LEVEL
SAN-DIEGO.NEW-YORK . 250.0000 SAN-DIEGO.CHICAGO SAN-DIEGO. KANSAS-CTY . 300.0000
LOWER LEVEL
VAR TRCOST -INF 16800.0000
TRCOST TRANSPORT COST (DOLLARS PER YEAR)
**** REPORT SUMMARY : 0 NONOPT ** O INFEASIBLE 0 UNBOUNDED
0 ERRORS ****
UPPER MARGINAL
+INF +INF 1.0000 +INF
UPPER MARGINAL
+INF
EXECUTION TIME = 0.457 SECONDS
A TRANSPORTATION PROBLEM (CANNERY,SEQ=1) EXECUTING
05/13/86 04:30:22 PAGE 8 GAMS 2.00 IBM CMS
Originating Linkid: SMUVM1
Originating Userid: E4MI0014
Distribution Code: B1N695
Spool file number: 8914
File Size - Recs: 00000011
File name and type: ORIG PROB
Origin Time/Date: 5/13/86 5:06:20 C.D.T.
****
FILE: ORIG PROB Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 001
MAX 75X1 + 6X2 + 3X3 + 33X4 ST 774X1 + 76X2 + 22X3 + 42X 14 =< 875 67X1 + 27X2 + 79IX3 + 53X4 =< 875 END INTEGER Xl INTEGER X2 INTEGER X3 INTEGER X4 GO
FILE: FILE FT01FOO1 Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 001
MAX 75X1+6X2+3X3+33X4
LP OPTIMUM FOUND AT STEP 4
OBJECTIVE FUNCTION VALUE
1) 113.837265
VARIABLE VALUE REDUCED COST
Xl 1.000000 -14.228930
X2 0.506042 0.000000
X3 0.933674 0.000000
X4 1.000000 -29.623016
ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.078377 3) 0.000000 0.001607
NO. ITERATIONS= 4 BRANCHES= 0 DETERM.= 5.975E 4
SET X2 TO 1 AT 1 BND= 113.15228 SET Xl TO 1 AT 2 BND= 100.64285 SET X4 TO 0 AT 3 BND= 83.950867 SET X3 TO 0 AT 4 BND= 81.000000
NEW INTEGER SOLUTION OF 81.0000 AT BRANCH
OBJECTIVE FUNCTION VALUE
1) 81.0000000
VARIABLE VALUE REDUCED COST
Xl 1.000000 -75.000000
X2 1.000000 -6.000000
X3 0.000000 -3.000000
X4 0.000000 -33.000000
ROW SLACK OR SURPLUS DUAL PRICES 2) 25.000000 0.000000 3) 781.000000 0.000000
NO. ITERATIONS= 10 BRANCHES= 4 DETERM.= 1.000E 0 BOUND ON OPTIMUM: 113.8373 DELETE X3 AT LEVEL 4
FLIP X4 TO 1 WITH BOUND 84.00002 DELETE X4 AT LEVEL 3
FLIP Xl TO 0 WITH BOUND 111.6818 DELETE Xl AT LEVEL 2
TWIN= 111.68181 TWIN= 111.68181 TWIN= 84.000015 TWIN= 80.999985
4 PIVOT 10
PAGE 002
FILE: FILE FT01FOO1 Al VM/SP (CMS) R3.1 6/12/85 PUT8502
FLIP X2 TO 0 WITH BOUND 111.6818 SET X3 TO 0 AT 2 BND= 107.99992 TWIN= 107.99986
NEW INTEGER SOLUTION OF 108.000 AT BRANCH 5 PIVOT 14
OBJECTIVE FUNCTION VALUE
1) 108.000000
VARIABLE VALUE REDUCED COST
Xl 1.000000 -75.000000
X2 0.000000 -6.000000
X3 0.000000 -3.000000
X4 1.000000 -33.000000
ROW SLACK OR SURPLUS DUAL PRICES 2) 59.000000 0.000000 3) 755.000000 0.000000
NO. ITERATIONS 14 BRANCHES= 5 DETERM.= 1.000E 0 BOUND ON OPTIMUM: 113.8373 DELETE X3 AT LEVEL 2 DELETE X2 AT LEVEL 1
ENUMERATION COMPLETE. BRANCHES= 5 PIVOTS= 14
LAST INTEGER SOLUTION IS THE BEST FOUND RE-INSTALLING BEST SOLUTION...
Originating Linkid: SMUVM1
Originating Userid: E4M10014
Distribution Code: B1N695
Spool file number: 8905
File Size - Recs: 00000005
File name and type: GAMRPT EXEC
Origin Time/Date: 5/13/86 4:32:36 C.D.T.
****
PAGE 001 FILE: GAMRPT EXEC Al VM/SP (CMS) R3;1 6/12/85 PUT8502
FORTVS TOCAMRPT (LANGLVL(77) FLAG(E) EXEC GLOB FORTRAN LOAD TOGAMRPT GENMOD TOGAMRPT
** * ** **** ******** ***************** ***** * * * ****
****
Originating Linkid: SMIJVM1
Originating Userid: [141110014
Distribution Code: BlP1695****
Spool file number: 8903 ****
File Size - Rees: 00000007
File name and type: TOMPSX EXEC****
Origin Time/Date: 5/13/86 4:32:35 C.D.T.**** **** ****
PAGE 001 FILE: TOMPSX EXEC Al VM/SP (CMS) R3.1 6/12/85 PUT8502
&CONTROL NOMSG OFF Fl MIN DISK GAMSLPF FLPDATA A Fl MIN DISK GAMSLPF FLPCNTR A Fl FMO(JT DISK TOMPSX DATA D (RECFM F LRECL 80 Fl FCOIJT DISK TOMPSX MPSCL D (RECFM F LRECL 80 GAMS2MI P
Originating Linkid: SMUVM1
Originating Userid: [414110014
Distribution Code: B1N695
Spool file number: 8906
File Size - Recs: 00000007
File name and type: POSTOPT EXEC
Origin Time/Date: 5/13/86 14:32:36 C.D.T.
FILE: POSTOPT EXEC Al VM/SP (CMS) R3.1 6/12/85 P1JT8502
PAGE 001
&GONTROL NOMSG OFF Fl 5 DISK FILE DPLUSER1 A (RECEM VBS LRECL 204 BLKSIZE 1024 Fl 6 DISK GAMSLPF FLPSOL A Fl 7 DISK GAMSLPF FLPSTAT A TOGAMRPT ERASE FILE DPLUSER1 A
Originating Linkid: SMUVM1
Originating tiserid: E4Ml0014
Distribution Code: B1N695
Spool file number: 8909
File Size - Recs: 00000010
File name and type: FOSSTAT FOSSTAT
Origin Time/Date: 5/13/86 14:32:37 C.D.T.
PAGE 001 FILE: FQSSTAT FOSSTAT A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
EXEC MINOS3 EXEC MPSX370 EXEC APEX4 EXEC APEX3 EXEC MINOS5 EXEC NPSOL EXEC GRG2 EXEC CONOPT EXEC SAMLIB
****
Originating Linkid: SMUVM1
Originating tJserid: E41,110014
Distribution Code: B1N695
Spool file number: 8908
File Size - Recs: 00000019
File name and type: MPS EXEC
Origin Time/Date: 5/13/86 4:32:36 C.D.T.
** * ** ******** ** ******** **** ****** ****** ** * ********** **** ***** ***** **** *
FILE: MPS EXEC Al VM/SP (CMS) R3.1 6/12/85 PUT8502 PAGE 001
&CONTROL OFF &IF &INDEX = 1 &GOTO -EXEC Fl SYSIN DISK &l MPSCL * (RECFM F BLOCK 80 &TYPE DPLCOMP DPLCOMP &IF &RETCODE = 0 &GOTO -CONT &TYPE COMPILE ERROR -EDG &EXIT -CONT &IF &2 = NOEX &GOTO -EDG &GOTO -CP -EXEC &2 = -CP Fl SYSPRINT DISK (DISP MOD Fl SYSIN DISK &2 DATA * (RECFM F BLOCK 80 Fl DPLUSER1 DISK (RECFM VBS LRECL 204 BLKSIZE 1024 DPLEXEC Fl SYSPRINT CLEAR &TYPE RETCODE = &RETCODE &EXIT
** * **** * ****** * ***** **** **** ***** ** ********************* * *** **** *
********
**** Originating Linkid: SMUVM1
Originating Userid: E410110014
Distribution Code: B1N695
Spool file number: 8907
File Size - Recs: 00000053
File name and type: MPSX370 EXEC ****
Origin Time/Date: 5/13/86 4:32:36 C.D.T.
FILE: MPSX370 EXEC Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 001
&CONTROL NOMSG OFF CLRSCRN &BEGTYPE
41* ** 41*41 ************ *41* ******** ***** ******* * *********** 41 *** ***** 41 * * * * MPSX370/MIP * * * ************************************************************************
PREPROCESS INC STARTS TO WORK
&END EXEC TOM PSX &BEGTYPE
* * * MPSX370/MIP * * *
:..IBM,MPSX37O OPTIMIZER IS WORKING..
&END EXEC MPSX MPS TOMPSX TOMPSX &IF &RETCODE NE 0 &GLOBAL3 = 100 CLRSCRN &BEGTYPE
* * * MPSX370/MIP * * *
POST PROCESS INC STARTS TO WORK
&END EXEC POSTOPT ERASE FILE SCRATCH1 A ERASE FILE SCRATCH2 A ERASE FILE SCRATCH A ERASE FILE SCRATCH LI A ERASE FILE PROBFILE A ERASE FILE SYSMLCP A
Originating Linkid: SMUVM1
Originating Userid: E4M10014
Distribution Code: B1N695
Spool file number: 8911
File Size - Recs: 00000081
File name and type: MPSX EXEC
Origin Time/Date: 5/13/86 4:32:37 C.D.T.
FILE: MPSX EXEC A2 VM/SP (CMS) 113.1 6/12/85 PUT8502
PAGE 001
&CONTROL OFF NOMSG &IF &INDEX < 2 &COTO -EXPLAIN &GOTO -START -EXPLAIN CLRSCRN &BEGTYPE
* *
• PROCEDURE NAME - MPSX * • FUNCTION - ACCESS AND INVOKE MPSX SYSTEM. * • COMMAND - MPSX <MODE> <MPSXCL> <MPSXDATA> * • ENTRY CONDITIONS - * * <MODE> - MPS - FOR EXECUTION OF MPS CONTROL LANGUAGE* * ECL - FOR COMPILATION AND EXECUTION OF * * EXTENDED CONTROL LANGUAGE. * * * * <MPSXCL> - CONTAINS MPSX PROGRAM STATEMENTS. * * OR IF THIS IS THE LAST PARAMETER, THIS * * NAME IS ASSUMED TO BE A DATA FILE, AND * * THAT THE PROBLEM PROGRAM HAS ALREADY BEEN * * COMPILED. THIS WILL EXECUTE ONLY AND NOT * * RECOMPILE THE PROGRAM. * * * * <MPSXDATA> - CONTAINS THE MPSX DATA INPUT. * * THIS PARAMETER MAY BE SPECIFIED AS * * 'NOEX' TO SUPRESS PROGRAM EXECUTION *
&END &EXIT
* * * PROCEDURE CHANGES * * *
* * * WRITTEN C. TERRELL 01/20/84 ORIGINAL * * UPDATED P. MORRIS 03/21/84 INCLUDE ECL EXECUTION CODE * * 'NOEX' AND EXECUTE ONLY * * OPTIONS * * UPDATED S. JOHNSTON 06/25/84 ADD SETUP CODE * * UPDATED S. JOHNSTON 0/11/85 ADD NOMSG TO CONTROL LINE. * * ADD &GOTO -START TO SKIP * * COMMENTS WHEN EXECUTING *
-START * --------SAVE PARAMTERS &PLI = &P1=&1 &P2 = &P3 = STATE PLIOPT MODULE * &IF &RETCODE -= 0 &IF &P1 = ECL &PLI = PLI *--------TEST FOR DISK ALREADY LINKED STATE DPLCOMP MODULE * &IF &RETCODE 0 &GOTO -LINKED *--------LINK MPSX DISK
FILE: MPSX EXEC A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 002
EXEC $S$sETUP MPSX &PLI * -LINKED &STACK RI &IF .&P1 = .MPS &GOTO -&P1 &IF .&P1 = .ECL &GOTO -&P1 EXEC SETUP RESET &GOTO -EXPLAIN * -MPS EXEC MPS &P2 &P3 &RCD = &RETCODE &GOTO -EXIT * -ECL EXEC ECL &P2 &P3 &RCD = &RETCODE * -EXIT EXEC SS$SETUP RESET &EXIT &RCD * -ERROR1 &TYPE NOT ABLE TO LINK 10 MPSX DISK &TYPE CONTACT ENG. & SCIENTIFIC SOFTWARE GROUP 471-3241 &EXIT 999 *
Originating Linkid: SMUVM1
Originating Userid: E4MI0014
Distribution Code: B1N695
Spool file number: 8910
File Size - Recs: 00000385
File name and type: COMP DATA
Origin Time/Date: 5/13/86 4:32:37 C.D.T.
* * ***** **** ************ ***** * ** ****** ** ************** ** ***********************************************************************
FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 001
DEFT I TLE GENERAL ALGEBRAIC MODELING SYSTEM RESWORDS **************** EQ GT GE LT LE NE OR NO NA XOR YES INF E PS SUM SET ORD AND NOT ALL PROD SM I N SMAX SETS FREE CARD LOOP SOS 1 SOS2 MODEL ABORT TABLE ALIAS SOLVE USING ASSIGN BINARY SCALAR MODELS SYSTEM OPTION INTEGER SCALARS OPTIONS DISPLAY ACRONYM ACRONYMS VARIABLE POSITIVE NEGATIVE EQUATION PARAMETER VARIABLES
PAGE 002 FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
EQUATIONS PARAMETERS MINIMIZING MAXIMIZING PROCNAMES LP MI P RMI P NLP TV SAMBAL MATBAL DNLP ALGNAMES MINOS3 1 LP RMIP MPSX 1 LP MIP RMIP APEX3 0 LP MIP RMIP APEX4 0 LP MIP RMIP MINOS5 1 LP RMIP NLP DNLP NPSOL 0 LP RMIP NLP DNLP GRG2 0 NLP DNLP CONOPT 0 NLP DNLP SAMLIB 1 TV MATBAL SAMBAL XXXXXXXXXX TVLABELS 4 YI3ASE PSOL YSOL QSOL 7 A-USED BETA-USED F-USED WP-USED THETA-USED TSOL QSOL
SPACE
SPACE TVACRONYM (' READ IN, NOT USED *) 3 GROUP MF INST AC 2 SPECS VSHR CD 2 FIX PQ
FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 003
SPACE NONE DOLOPT I ONS #****************** ONMARG I N OFFMARG IN N I NCOL MAXCOL COMMENT DOLLAR HIDDEN ONT EXT OF FT EXT SINGLE DOUBLE LINES TITLE ST IT LE ONSYML 1ST OFFSYMLI ST ONUELL 1ST OFFIJELLIST ONSYMXREF OF F SYMXRE F ONUELXREF OFFUELXREF DEBUG ON DOLLAR OF F DO LLAR EJECT DBGOPT IONS DMPSYM DM PC PL DMPTPL MEASURE DMP INS RUNOPT IONS DMPSYM 0 0 DMPINS 0 1 MEASURE 0 2 EJECT 0 3 SYSO 10 SYS1 1 1 SVS2 1 2 SYS3 1 3 SYS4 11 SYS5 15 SVS6 16 SYS7 1 7 SYS8 18 SYS9 19 SAVE 20 0 ITERLIM 2 1 1000 SDIN 22 0
FILE: COMP DATA A2 VM/SP (CMS) 113.1 6/12/85 PUT8502
PAGE 004
SDOUT 23 0 LIMCOL 2 4 3 LIMROW 2 5 3 WORK 26 0 DOMLIM 2 7 0 DECIMALS 2 8 3 INTEGER1 2 9 0 INTEGER2 2 10 0 INTEGER3 2 11 0 INTEGER4 2 12 0 INTEGERS 2 13 0 RESLIM 3 0 1000.0 PERT 3 1 0.0 OPTCR 3 2 0.1 OPTCA 3 3 0.0 BRATIO 3 4 0.25 REAL1 3 5 0.0 REAL2 3 6 0.0 REAL3 3 7 0.0 REAL4 3 8 0.0 REALS 3 9 0.0 SOLVEOPT 4 0 MERGE REPLACE SYSOUT 4 1 OFF ON ERRORMSGS
0 INTEGER NUMBER EXPECTED 1 REAL NUMBER EXPECTED 2 IDENTIFIER EXPECTED 3 ELEMENT EXPECTED 4 I4I OPERATOR EXPECTED 5 '* OPERATOR EXPECTED 6 ** OPERATOR EXPECTED 7 (' EXPECTED 8 ' )' EXPECTED 9 OPERATOR EXPECTED 10 ',' EXPECTED 11 '.' EXPECTED 12 ';' EXPECTED 13 '++' OPERATOR EXPECTED 14 'LT' OPERATOR EXPECTED 15 'OR' OPERATOR EXPECTED 16 ' INF' EXPECTED 17 'SUM' OPERATOR EXPECTED 18 'PARAMETER' EXPECTED 19 'AND' EXPECTED 20 'NOT' OPERATOR EXPECTED 21 'ALL' EXPECTED 22 'POSITIVE' EXPECTED 23 'LOOP' EXPECTED 24 'TABLE' EXPECTED 25 'ALIAS' EXPECTED 26 'SOLVE' EXPECTED 27 'USING' EXPECTED 28 'OPTION' EXPECTED 29 'DISPLAY' EXPECTED 30 'ORD' EXPECTED
FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 005
31 'CARD' EXPECTED 32 'MODEL' EXPECTED 33 'MAXIMIZING' EXPECTED 34 '=' OPERATOR EXPECTED 35 '=L=' OPERATOR EXPECTED 36 QUOTE EXPECTED 98 NON BLANK CHARACTER(S) BEYOND COLUMN 120 99 ILLEGAL CHARACTER 102 TOO MANY DIGITS IN INTEGER 103 TOO MANY DIGITS IN REAL 104 EXPONENT EXPECTED 105 EXPONENT OUT OF RANGE 106 NUMBER OUT OF RANGE, SET TO UNDEFINED 107 SYMBOL TOO LONG 108 IDENTIFIER TOO LONG 109 ELEMENT TOO LONG 111 UNKNOWN SUFFIX IGNORED 114 CLOSING QUOTE MISSING IN ELEMENT 115 ELEMENT IS EMPTY 117 DOMAIN CHECKING SUPPRESSED FOR THIS SYMBOL 118 UNRECOGNIZED STATEMENT 119 NUMBER (PRIMARY) EXPECTED 120 UNKNOWN IDENTIFIER ENTERED AS SET 121 SET EXPECTED 122 ONE DIMENSIONAL SET EXPECTED 123 SET IS EMPTY 124 SUFFIX FOR A SET NOT ALLOWED 125 SET IS UNDER CONTROL ALREADY 126 SET IDENTIFIER OR '(' EXPECTED 127 BASE OF POWER NOT A REAL NUMBER 128 EXPONENT OF POWER NOT A REAL NUMBER 130 DIVISION NOT DEFINED FOR A SET 131 INCOMPATIBLE OPERANDS FOR MULIPLICATION 133 INCOMPATIBLE OPERANDS FOR ADDITION 135 INCOMPATIBLE OPERANDS FOR RELATION 140 UNKNOWN SYMBOL, ENTERED AS PARAMETER 141 SYMBOL HAS NO DATA 142 ILLEGAL SUFFIX IGNORED 143 MISSING SUFFIX 144 ILLEGAL IDENTIFIER (MODEL OR FUNCTION) 145 SET IDENTIFIER EXPECTED 146 MAXIMUM NUMBER OF DIMENSIONS EXCEEDED 147 REAL VALUE FOR LAGOPERATOR EXPECTED 148 DIMENSION DIFFERENT 149 UNCONTROLLED SET ENTERED AS CONSTANT 150 EQUATION REDEFINED 151 SYMBOL AND RIGHT SIDE OF DIFFERENT TYPE IN ASSIGNMENT 152 EQUATION EXPECTED 153 UNCONTROLLED SET(S) IN LAG-EXPRESSION 154 SET FOR 'ORD' IS NOT CONTROLLED 155 SET FOR 'ORD' HAS BEEN MODIFIED 156 MORE THAN ONE KNOWN SET IN ALIAS LIST 157 NO KNOWN SET FOUND IN ALIAS LIST 158 NO SETS FOUND TO BE ALIASED 159 AN ALIASED SET IS NOT ALLOWED HERE
FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 006
160 UNIQUE ELEMENT EXPECTED 161 CONFLICTING DIMENSIONS IN ELEMENT 162 MACRO WITHOUT NUMERIC PART 163 FIRST PART OF MACROS NOT IDENTICAL 164 SECOND PART OF MACROS NOT IDENTICAL 165 FIRST NUMBER GREATER THAN SECOND NUMBER IN MACRO 166 '=' ASSIGNMENT EXPECTED 167 REDEFINITION OF LOOP CONTROLLED SET 168 ASSIGNMENT NOT ALLOWED 169 EQUATION WITHIN A LOOP IS NOT ALLOWED 170 DOMAIN VIOLATION FOR ELEMENT 171 DOMAIN VIOLATION FOR SET 172 ELEMENT IS REDEFINED 173 DISPLAY WITHIN A LOOP NOT ALLOWED (PC ONLY) 180 'VARIABLE' EXPECTED 182 CLOSING '/' MISSING 184 DOMAIN LIST REDEFINED 185 SET IDENTIFIER OR EXPECTED 186 ILLEGAL DATALIST IGNORED 187 ASSIGNED SET USED AS DOMAIN 188 ASSIGNING TO SET USED AS DOMAIN 189 DOMAINLIST NOT ALLOWED FOR SCALAR 190 TEXT TOO LONG, TRUNCATED 191 CLOSING QUOTE MISSING 192 IDENTIFIER OR QUOTED STRING EXPECTED 193 TEXT FOR SYMBOL REDEFINED 194 SYMBOL REDEFINED 195 SYMBOL REDEFINED WITH A DIFFERENT TYPE 196 VARIABLE REDEFINED WITH A DIFFERENT SUBTYPE 200 FUNCTION NOT ALLOWED HERE 201 INVALID ARGUMENT FOR FUNCTION 202 TOO MANY ARGUMENTS FOR FUNCTION 203 TOO FEW-ARGUMENTS FOR FUNCTION 210 UNKNOWN DOLLAR CONTROL OPTION. VALID ARE - 210 ONMARGIN OFFMARGIN SINGLE DOUBLE 210 ONDOLLAR OFFDOLLAR EJECT 210 ONSYMLIST OFESYMLIST ONUELLIST OFFUELLIST 210 ONSYMXREF OFFSYMXREF ONUELXREF OFFUELXREF 210 ONTEXT OFFTEXT (BRACKET A BLOCK OF COMMENT LINES) 210 LINES (FOLLOWED BY LINE COUNT) 210 TITLE STITLE (FOLLOWED BY NEW TITLE/SUBTITLE) 210 MINCOL MAXCOL (FOLLOWED BY COLUMN POSITION) 210 DOLLAR COMMENT (FOLLOWED BY 1 CHARACTER) 210 HIDDEN (FOLLOWED BY UNLISTED COMMENT) 211 LEFT MARGIN MUST BE LESS THAN RIGHT MARGIN 212 LEFT MARGIN CAN NOT BE LESS THAN 1 213 RIGHT MARGIN MUST BE GREATER THAN LEFT MARGIN AND 15 214 RIGHT MARGIN MUST BE LESS THAN 121 215 UNKNOWN DOLLAR DEBUG OPTION. VALID ARE - 215 OMPSYM DMPCPL DMPTPL DMPINS MEASURE 216 NO PREVIOUS "ONTEXT" 217 "OFFTEXT" EXPECTED 218 DOLLAR AND COMMENT CHARACTERS MUST BE DIFFERENT 219 SINGLE CHARACTER BETWEEN BLANKS EXPECTED 220 PARTIAL OVERLAPPING COLUMN ADJUSTED
FILE: COMP DATA A2 VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 007
221 TOTAL OVERLAPPING COLUMN IGNORED 222 COLUMN HAS DIFFERENT DIMENSION 223 OVERLAPPING ROWNAME, ADJUSTED 224 OVERLAPPING ENTRY IGNORED 225 FLOATING ENTRY IGNORED 226 MULTIPLE ENTRY IGNORED 227 '/' IN MODEL LIST EXPECTED 230 IDENTIFIER IS NOT A MODEL 231 MODEL REDEFINED X 232 UNDEFINED IDENTIFIER(S) IN MODEL LIST 233 EMPTY MODEL LIST 234 ILLEGAL IDENTIFIER IN MODEL LIST 235 TYPE OUT OF SEQUENCE 236 DUPLICATE IDENTIFIER(S) IN MODEL DEFINITION 240 UNKNOWN IDENTIFIER, ENTERED AS BEST GUESS 241 MODEL HAS NOT BEEN DEFINED 242 UNKNOWN IDENTIFIER, ENTERED AS VARIABLE X 243 OBJECTIVE IS NOT A VARIABLE 244 UNKNOWN PROCESSOR NAME 245 OBJECTIVE VARIABLE NOT REFERENCED IN MODEL 246 OBJECTIVE VARIABLE IS NOT A FREE VARIABLE 247 NO ALGORITHM AVAILABLE FOR THIS CLASS OF MODEL 250 UNKNOWN OPTION. VALID ARE - 250 INTEGER1 TO INTEGER5 250 LIMROW LIMCOL DOMLIM ITERLIM WORK (INTEGER VALUES) 250 DECIMALS (0. .8) 250 OPTCA OPTCR 250 REAL1 TO REAL5 RESLIM BRATIO (REAL VALUES) 250 MEASURE EJECT (NO VALUES) 250 SYSOUT (ON/OFF) SOLVOPT (MERGE/REPLACE) 251 UNKNOWN OPTION VALUE 252 SYSTEM OPTION VALUE OUTSIDE RANGE 0. .32767 253 UNKNOWN ALGORITHM 254 ALGORITHM NOT LICENSED 255 ALGORITHM NOT SUITABLE FOR PROCESS 256 ERROR(S) IN ANALYZING SOLVE STATEMENT 257 SOLVE STATEMENT NOT CHECKED BECAUSE OF PREVIOUS ERRORS 258 OPTION "DECIMALS" MUST BE IN RANGE 0. .8 260 INSTRUCTION SPACE OVERFLOW 261 CONSTANT POOL OVERFLOW 262 ILLEGAL SYNTAX FOR TV SOLVE 265 EQUATION HAS NOT BEEN DEFINED 266 IDENTIFIER IS NOT AN EQUATION 267 FEATURE NOT IMPLEMENTED 269 A TV MODEL MUST CONTAIN 3 IDENTIFIERS 299 UNEXPECTED END OF FILE 300 REMAINING ERRORS NOT PRINTED FOR THIS LINE 999 SENTINEL
Originating Linkid: SMIJVM1
Originating Userid: E4Ml00114
Distribution Code: B1N695
Spool file number: 8904
File Size - Recs: 00000199
File name and type: TOGAMRPT FORTRAN
Origin Time/Date: 5/13/86 4:32:36 C.D.T.
FILE: TOGAMRPT FORTRAN Al VM/SP (CMS) R3.1 6/12/85 P018502
PAGE 001
C USER PROCEDURE TO COVERT THE SOLUTION FILE FROM MPSX/370 T0000010 C TO BE THE FILES COMPATIBLE TO CAMS T0000020 C +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ TOG000 30 C T0000040
INTEGER-4 FILE, LIST, RPT, NOCOL, NOCOL2, I, J, L, M, N, P TOG00050 INTEGER-4 TYPE(60), VALNUM(50) T0000060 REAL*8 VOBJ T0000070 REAL*8 NOITER, NOROW, NOCOLS, NOREC, NOHEAD, NDUM 10000080 REAL*8 COLUMN(30), VALUES(25) 10000090 REAL*8 NAME, ENDATA, ENDSEC 10000100 REAL*4 VALALF(50) T0000110 REAL*8 OBJ, FUNC, ITER, ROWS, COLM, TARG, STAT, METH 10000120 REAL*8 BASIS, BSLO, BSHI, EQUAL 10000130 REAL*4 ISTAT, ITARG, IMETH, OPTM, NOPT, INFES, INTG T0000140
C 10000150 DATA ENDATA/'ENDATA 'I, ENDSEC/'$ENDSEC$'/ 10000160 DATA OBJ /'OBJ 'I TOG00170 DATA FUNd' FUNCTION'! 10000180 DATA ITER/'ITERNO 'I 10000190 DATA ROWS/'ROWS 'I 10000200 DATA COLM/'COLUMNS t/ 10000210 DATA TARG/'TARGET 'I T0G00220 DATA STAT/'STATUS '/ T0G00230 DATA METH/'METHOD 'I TOG00240 DATA BASIS/'BS 9, NBSLO/'LL 'I, NBSHI/'IJL '/,T0000250
1 EQUAL/'EQ 'I 10000260 DATA OPTM/'OPTM'/, INFES/'NFES'/, NOPT/'NOPT'/ 10000270 DATA INTG/' ITGR'/ T0000280
C 10000290 EQUIVALENCE (VALUES(1),VALNUM(1).VALALF(1)) 10000300
C 10000310 FILE = 5 10000320 LIST = ,6 10000330 RPT = 7 T0000340
10000350 C 10000360 C SKIP THE NAME,XDATA RECORD 10000370 C 10000380
READ(FILE) 10000390 C 10000400
READ(FILE) NAME,NOCOL 10000410 NOCOL2 = 2 * NOCOL TOG00420 READ(FILE) (COLUMN(N),N=1,NOCOL) 10000430 READ(FILE) (TYPE(N),N=1,NOCOL2) T00001140 j = o T0000450 DO 2 I=2,NOCOL2,2 10000460
J = J + TYPE( I) T0000470 2 CONTINUE T0000480 J = J/4 T0G00490 READ(FILE) (VALALF(N),N=1,J) T0000500
C 10000510 C PRINT THE IDENTIFICATION ARRAY, ONE VALUE PER LINE T0000520 C TOGOOS3O C T0G00540
j = 0 TOG00550
FILE: TOGAMRPT FORTRAN Al VM/SP (CMS) R3'.1 6/12/85 PUT8502
PAGE 002
DO 20 N=l,NOCOL T0G00560 L = J/4 + , TOG00570 M = L + 1 T0G00580 P = L + 19 T0G00590 IF(TYPE(2*N_1) - 2) 10,1 14,12 TOG00600
C TOGOO61O C NUMERIC - INTEGER - VALUE TOG00620 C T0G00630
10 IF(COLUMN(N).NE.ITER) GO TO 33 T0G00640 NOITER = VALNUM(L) 10600650 GO TO 19 TOG00660
33 IF(COLUMN(N).NE.ROWS) GO TO 44 10600670 NOROW = VALNUM(L) 10600680 GO TO 19 T0G00690
44 IF(COLUMN(N).NE.COLM) GO TO 19 10600700 NOCOLS = VALNUM(L) TOG00710 GO TO 19 TOG00720
C TOGOO73O C NUMERIC - REAL - VALUE TOG00740 c T0G00750
12 IF(COLUMN(N).NE.FUNC) GO TO 19 T0G00760 VOBJ = VALALF(L) 10600770 GO TO 19 T0G00780
C T0G00790 C ALPHAMERIC VALUE, LENTH MAY BE 4, 8, OR 80 10600800
10600810 14 IF(TYPE(2*N) - 8) 15,17,18 T0G00820
C T0G00830 C ALPHAMERIC VALUE - LENGTH = 4 T0G00840 C 10600850
15 IF(COLUMN(N).NE.STAT) GO TO 55 10600860 ISTAT = VALALF(L) T0G00870 GO TO 19 10600880
55 IF(COLUMN(N).NE.TARG) GO TO 66 TOG00890 ITARG = VALALF(L) TOG00900 GO TO 19 10600910
66 IF(COLIiMN(N).NE.METH) GO TO 19 TOG00920 IMETH = VALALF(L) 10600930 GO TO 19 T0G009140
C TOCOO95O C ALPHAMERIC VALUE - LENGTH = 8 T0G00960 C 10600970
17 GO TO 19 TOG00980 C TOGOO99O C ALPHAMERIC VALUE - LENGTH = 80 10601000 C TOGO1O1O
18 CONTINUE TOG01020 C TOGO1O3O
19 J = J + TYPE(2*N) 10G010140 20 CONTINUE TOG01050
C TOGO1O6O C WRITE OUT THE STATUS FILE FOR GAMS REPORT TOG01070 C 10601080 C 10601090
WRITE(RPT,1001) TOG01100
FILE: TOGAMRPT FORTRAN Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 003
C
1001 FORMAT('=l ',/,lX,'EXECUTOR. IBM MPSX/370-MIP/370',/) TOG01110 WRITE(RPT,1002) TOG01120
1002 FORMAT(1X,'INTERFACE BETWEEN MPSX/370 AND GAMS IS PROVIDED BY:', TOG01130 1 /,1X,'CENTER FOR BUSINESS DECISION ANALYSIS', TOG01140 2 /,1X,'UNIVERSITY OF TEXAS AT AUSTIN', TOG01150 3 /,1X,'AUSTIN, TEXAS 78712',/) TOG01160 IF(ISTAT.EQ.OPTM) THEN TOG01170
WRITE(RPT,1003) TOG01180 IRCST = 0 T0001190
1003 FORMAT(1X,'EXIT -- OPTIMAL SOLUTION FOUND.',/) TOG01200 ELSE TOG01210
IF(ISTAT.EQ.NOPT) THEN T0G01220 WRITE(RPT,1004) T0G01230 IRCST = 1 T0G01240
1004 FORMAT(1X,'EXIT -- NON-OPTIMAL BUT FEASIBLE SOLUTION FOUND.',/)T0G01250 ELSE T0G01260 WRITE(RPT,1005) T0G01270 IRCST = 2 T0G01280
1005 FORMAT(1X,'EXIT -- INFEASIBLE SOLUTION FOUND.',!) T0G01290 ENDIF TOG01300
ENDIF TOG01310 TOGO1 320 TOGO1 330
SKIP THE $ENDSEC$ OF THE IDENTIFICATION ARRAY T0G01340TOGO 1350
READ( F I LE)
TOGO1 360 TOGO1 370
GET THE ROW AND COLUMN SECTIONS TOGO1 380 TOGO1 390 TOGO 1400 TOGO 1410 TOGO 1420 TOGO 1430 T0001LILl0 TOGO 11450 TOGO 1460 lOGO 1470
EQ.OPTM) MSTAT = 8 T0G01480 lOGO 1490 TOGO1 500 TOGO151O TOGO 1520
WRITE(LIST,2001) NOREC, NOHEAD, NORMAL, MSTAT T0G01530 RESUSE = 0.0
TOGO 1540 IKEY1 = 1
TOGO 1550 IKEY2 = 2
lOGO 1560 WRITE(LIST,2001) VOBJ, RESUSE, IKEY1, IKEY2 T0001570 NDLJM = 1.0
10601580 IKEY3 = 3
TOGO1 590 IKEY4 = 0
TOGO 1600 WRITE(LIST,2001) NOITER, NDUM, IKEY3, IKEY4 10601610 WRITE(LIST,2001) NOROW, NOCOLS, IKEY4, IKEY4 T0601620
C
TOGO 1630 IFLAG = -1
TOGO 1640 21 READ(FILE) NAME,NOCOL
TOGO 1650
C C C C
C C C C
IF( ISTAT.EQ.OPTM) THEN MSTAT = 1
ELSE IF( ISTAT.EQ. INFES) THEN
MSTAT = 4 ENDI F
ENDI F IF( IMETH.EQ. INTG.AND. ISTAT
NOREC = NOROW + NOCOLS + 6 NOHEAD = 4.0 NORMAL = 1
FILE: TOGAMRPT FORTRAN Al VM/SP (CMS) R3.1 6/12/85 PUT8502
PAGE 004
IF(NAME.EQ.ENDATA) GO TO 32 T0G01660 C T0G01670
READ(FILE) T0G01680 READ(FILE) T0G01690
c TOGO1700 24 READ(FILE) (VALUES(N),N=1,NOCOL) T0001710
IF(VALIJES(1).EQ.ENDSEC) THEN T0G01720 WRITE(LIST,2002) T0G01730 IFLAG = -1 * IFLAG TOG01740 GO TO 21 T0601750
ENDIF T0001760 C T0G01770
INDBS = 0 T0G01780 IF(VALIJES(7).EQ.BASIS) THEN T0G01790
INDBS = 2 TOG01800 ELSE TOG01810
IF(VALIJES(7).EQ.BSHI) THEN T0G01820 INDBS = 1 T0G01830
ENDIF T0G01840 ENDIF TOG01850
c TOGO186O VALUES(5) = IFLAG * VALUES(5) T0G01870
25 WRITE(LIST,2001) VALUES(1),VALUES(5), INDBS, IRCST T0G01880 GO TO 24 T0G01890
C TOGO1900 31 WRITE(LIST,2002) TOG01910 32 STOP T0G01920
2001 FORMAT(2(1PE20.11),214) T0G01930 2002 FORMAT(2(3X, '3.00000031728E+1O' ),2(3X, '0')) T0G01940
END T0G01950
*41* * 41* *********** *41* 41*41*41*41*41*41 * ****** ************* ******* * * 41
41*41* *4141* 41*41* 41*41* 41*41*
41*41* *4141* Originating Linkid: SMUVM1 *41*4+
41*41* 4*41* *41*4+ Originating Userid: E4*1I00114 *41*4+
Distribution Code: B1N695 41*4*
Spool file number: 8902 4*41* *4141*
File Size - Recs: 00001510 4*41* 41*41* 41*41* **** File name and type: TEMPSX LISTING *41*4+ *41*4+ *41*4+ Origin Time/Date: 5/13/86 4:31:24 C.D.T. **** *44* 41*41* *414* *41*41 *414* *4+41* *4+4* *41*4+ 41*41* *41*41 ***********************************************************************
***********************************************************************
PAGE
*
PASCAL/VS RELEASE 2.1 05/09/86 19:45:58
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+----5-+6+7V SEQ NO I(* $T-,P-,R- ** CYBER SPECIFIC ** CHECKS OFF ALLOW RFL TO INCREASE RU *)00000001 I(* FOR OTHER MACHINES MAY NEED TO ALTER RESET AND REWRITE STATEMENTS *) 00000002 I(* DUMMY CLOSE ROUTINE IN THIS FILE MAY NEED DELETING *) 00000003 I(* CHECK ALL MIXED INTEGER CONSTRUCTS, ESP SOS VARIABLES AND BOUNDS *) 00000004 I(* ALL CONTROL FILE AND FIELD LENGTH STUFF ARE CYBER/APEX SPECIFIC *) 00000005 l(* MAKE SURE ALL ERRORS ARE APPROPRIATE *) 00000006 IPROGRAM GAMS2MIP(FCIN,FDIN, (* CONTROL,DATA IN *) 00000007 R * * *
FSTAOUT,FSOLOUT, (* STATUS, SOLUTION OUT IF ERRORS *) 00000008 * *
I FCOUT,FMOUT,FBOUT,(* CONTROL, MPS, BASIS OUT *) 00000009 * * *
I INPUT,OUTPUT); 00000010 * *
ICONST 00000011 R I EFORMATOK = FALSE; (* IF E- FORMAT TOLERATED BY TARGET SOLVER *) 00000012 * I(* IF FALSE WILL ABORT AND ERROR MESSAGE ON F- FORMAT OVERFLOW *) 00000013 I BNDNAME = 'GBND '; (' EXACTLY 10 *) 00000014 *
I RUSNAME = 'GRHS '; 00000015 *
I MAXRC = 32767; (* MAX ROW/COL INDEX *) 00000016 *
I MOSTA = 13; (* ERROR RETURN MODEL STATUS - NO SOLUTION *) 00000017 *
I SOSTA = 8; (* ERROR RETURN SOLVER STATUS - PRE-PROCESSOR *) 5 *) *
I SVAL 1.0; (* FOR SOLUTION RECORD *) 00000019 *
ITYPE 00000020 R I POSINT = 0. .MAXINT; 00000021 *
I RCSEQT = 0. . MAXRC; 00000022 * 1 I FWID = 0..12; 00000023 *
I TMIP = 0..10; 00000024 *
I ERRTXT = PACKED ARRAY1. .5O OF CHAR; 00000025 * R R R I WHERE = (GLOBAL,COLUMN,ROW); 00000026 * * * *
I SIJBWHERE = (SROW,SCOLUMN,SBOUND,SRHS); 00000027 * * * *
I 00000028 I(* LIST FOR RHS *) 00000029 I TRHSPTR = @TRHS; 00000030 * *
TRHS = RECORD 00000031 * R I RHSVAL : REAL; 00000032 *
ROWNUM : RCSEQT; 00000033 * 1 I ROWNXT : TRHSPTR 00000034 * 1 I END; 00000035 R I 00000036 I(* LIST FOR BOUNDS *) 00000037 I TBNDPTR @TBND; 00000038 * *
I TBND = RECORD 00000039 * R I BLO, 00000040 *
I BLVL, 00000041 *
I BUP : REAL; 000000142 *
I NDIG : FWID; 00000043 * 1 I COLNUM : RCSEQT; 00000044 * 1 I MIPTYP : TMIP; 00000045 * 1 I BNDNXT : TBNDPTR 00000046 * 1 I END; 00000047 R I 00000048 I(* LIST FOR BASIS *} 00000049 I TBASPTR = @TBAS; 00000050 * *
I TBAS = RECORD 00000051 * R I INDX : RCSEQT; 00000052 * 1 I UP : BOOLEAN; 00000053 * p
PASCAL/VS RELEASE 2.1 GAMS2MIP : 05/09/86 19:45:58 PAGE 2
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+----5----+--6+7V SEQ NO I INDXNXT: TBASPTR 00000054 * 1 I END; 00000055 R
00000056 I TCH2 = PACKED ARRAY'11. .2 OF CHAR; 00000057 * R R R P I 00000058 IVAR 00000059 R I(* HEAD OF LIST FOR RHS *) 00000060 I HRHSPTR : TRHSPTR; 00000061 * 1 I(* HEAD OF LIST FOR BOUNDS *) 00000062 I HBNDPTR : TBNDPTR; 00000063 * 1 I(* HEAD OF LIST FOR NON-BASIC ROWS *) 00000064 I HRBASPTR : TBASPTR; 00000065 * 1 I FCOUT, (* CONTROL FILE OUT FOR SOLVER *) 00000066 *
I FDIN, (* DATA FILE IN FROM CAMS *) 00000067 *
I FCIN, (* CONTROL FILE IN FROM CAMS *) 00000068 *
I FSTAOIJT, (* STATUS FILE OUT IF ERROR *) 00000069 * FSOLOUT, ( SOLUTION FILE OUT IF ERROR *) 00000070 *
I FMOUT, (* MPS FILE OUT FOR SOLVER *) 00000071 * FBOUT (* BASIS FILE OUT FOR SOLVER *) 00000072 *
I : TEXT; 00000073 P I RPOWEROF10 : ARRAY '1. .9' OF REAL; 00000074 * R R P I IPOWEROF10 : ARRAY 1. .141 OF INTEGER; 00000075 * R R P I WORK, (* IF NON-ZERO USER'S REQUEST FOR MEMORY *) 00000076 *
I OBJROSEQ, (* SEQUENCE NUMBER OF OBJECTIVE ROW *) 00000077 *
I ITERLIM, (* ITERATION LIMIT *) 00000078 *
I DOMLIM, (* EVALUATION ERROR LIMIT NLP ONLY *) 00000079 *
I NOTUSED, 00000080 *
I NNBROW, (* COUNT OF NON-BASIC ROWS *) 00000081 *
I NUMROWS, (* COUNT OF ROWS *) 00000082 *
I NUMCOLS, (* COUNT OF COLUMNS *) 00000083 *
I NUMNNZ (* COUNT OF NON-ZEROES IN MATRIX *) 00000084 *
I : INTEGER; 00000085 P I ENVIRON : WHERE; 00000086 * 1 I SENVIRON : SUBWHERE; 00000087 * 1 I GLOBALSEQ : RCSEQT; 00000088 * 1 I ERRMKR : ARRAYJWHERE' OF CHAR; 00000089 * R 1 R P I IUSER : ARRAY-'i1..5 OF INTEGER; 00000090 * R R P I XUSER : ARRAY 1. .5 OF REAL; 00000091 * R R P I PINF, (* GAMS REPRESENTATION OF +INF *) 00000092 *
I MINF, (* -INF *) 00000093 *
I RESLIM, (* RESOURCE LIMIT *) 00000094 *
I BRATIO (* RATIO NON-B ROWS/B COLUMNS FOR ACCEPTING USER BASIS *) 00000095 *
I : REAL; 00000096 P I TYPBIN, (* INDICATORS FOR DISCONTINOUS VARIABLE TYPES *) 00000097 *
I TYPINT, 00000098 * TYPSOS1, 00000099 *
I TYPSOS2 : TMIP; 00000100 * 1 I SYSOUT, (* IF T ARRANGE TO COPY SOLVER STATUS FILE TO USER'S *) PUT *) *
I DOMIP, (* IF T PROBLEM HAS DISCONTINUOUS VARAIBLES *) 00000102 *
I ERRORFREE, 00000103 *
I (* IF T PUT TOGETHER A BASIS AND TELL SOLVER NOT TO *) H *)
I NEEDBAS : BOOLEAN; 00000105 *
I IDIR : 0. .1; 00000106 *
PASCAL/VS RELEASE 2.1 GAMS2MIP : 05/09/86 19:145:58 PAGE 3
B P C I STMT#
SOURCE PROGRAM
PAGE XREF
V -------- 1____+____2 --------- 3 --------- +5 6+-7V SEQ NO I DTXT : ARRAY-O..1'1 OF PACKED ARRAY-l..31 OF CHAR; 00000107 * R R R R R P
00000108 PROCEDURE CLOSE( VAR F : TEXT); 00000109 R * R *
I BEGIN 00000110 R
I END; (* DUMMY CLOSE FOR CYBER *) 00000111 R
I 00000112 I PROCEDURE PPERROR(ERRNUM : INTEGER; lxi : ERRTXT); 00000113 R * * * 1 I(* PROCESS A PRE-PROCESSOR ERROR *) 000001114 I BEGIN 00000115 R
1 I IF ERRORFREE 00000116 R 2
I THEN 00000117 R I(* INITIALIZE A STATUS FILE FOR CAMS *) 00000118 I BEGIN 00000119 R
2 I ERRORFREE FALSE; 00000120 2 P 3 I REWRITE(FSTAOUT)i 00000121 P 2 4 I WRITELN(FSTAOUT,=1'); WRITELN(FSTAOUT); 00000122 P 2 P 2 6 I WRITELN(FSTAOUT,' FATAL PREPROCESSOR ERROR(S) -'); 00000123 P 2 7 I WRITELN(FSTAOUT) 00000124 P 2
I END; 00000125 R I(* WRITE A RECORD FOR THIS ERROR *) 00000126
8 I IF ENVIRON = GLOBAL 00000127 R 2 1
I THEN 00000128 R
I BEGIN 00000129 R 9 I WRITELN(FSTAOUT,'=',ERRMKR'ENVIROW'); 00000130 P 2 2 2
10 I WRITELN(FSTAOUT,'**** ',TXT) 00000131 P 2 3 I END 00000132 R I ELSE 00000133 R
11 I WRITE (FSTA0UT,'=',ERRMKRENVIR0N); 00000134 P 2 2 2 12 I WRITELN(' ',GLOBALSEQ:l,' ',ERRNUM:l,' '.TXT); 00000135 P 2 3 3
I END; 00000136 R I 00000137
FUNCTION PRDIGITS(K : POSINT) : FWID; 00000138 R * * 1 1 I(*.HOW MAY DIGITS NEEDED TO PRINT *) 00000139 I VAR 00000140 R I G : POSINT; 00000141 * 1 I BEGIN 00000142 R
1 I IF K >= IPOWEROF10ThI 00000143 R 3 2 I THEN 00000144 R
2 I C := 4 00000145 3 ELSE 00000146 R
I BEGIN 00000147 R 3 I G : 1; 00000148 3 4 I WHILE K >= IP0WEROF10'G" 00000149 R 3 2 3 5 I DO G 0+1 00000150 R 3 3
I END; 00000151 R 6 I PRDIGITS : G 00000152 3 3
I END; ( PRDIGITS *) 00000153 R I 00000154 I PROCEDURE COEFFOUT(X : REAL; VAR F : TEXT); 00000155 R * * p R * p I(* WRITE A COEFFICIENT IN FIXED FIELD WIDTH *) 00000156 I VAR 00000157 R I V : REAL; 00000158 *
I N : INTEGER; 00000159 *
1 1 1 11 11 11 11
111 111 111 111 111
11 11 11
111 111 11 11
11 11 11 11 11
111 1111 1111
1 1
PASCAL/VS RELEASE 2.1 GAMS2MIP :COEFFOUT 05/09/86 19:45:58 PAGE 4
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----k----+----5----+----6----+7V SEQ NO 1 I : 0..12; 00000160 *
1 BEGIN 00000161 R 1 1 I V := ABS(X); 00000162 3 P 3 1 1 2 I IF V > RPOWEROF109' 00000163 R 3 2 1 1 I THEN 00000164 R 1 1 I BEGIN 00000165 R
1 1 1 3 I WRITE(F,X:12); 00000166 P 3 3 1 1 2 L IF NOT EFORMATOK 00000167 R R 1 1 1 2 I THEN 00000168 R 1 1 3 5 I CASE SENVIRON OF 00000169 R 2 R 1 1 3 I SROW : ; 00000170 1 1 1 3 6 I SCOLUMN: PPERROR(1,'COEFFICIENT FORMAT OVERFLOW );00000171 1 3 1 1 3 7 I SRHS: PPERROR(2,'RHS FORMAT OVERFLOW ');00000172 1 3 1 1 3 8 I SBOUND: PPERROR(3,'BOUND FORMAT OVERFLOW ');00000173 1 3 1 1 2 I END 00000174 R
1 1 END 00000175 R 1 1 ( ELSE 00000176 R 1 1 BEGIN 00000177 R
1 1 1 9 I I := 1; (* NUMBERS 0 --> 1 PRINTED AS O.XX *) 00000178 3 1 1 1 1 10 I WHILE V >= RPOWEROF101I 00000179 R 3 2 3 1 1 1 11 I DO I := I + 1; 00000180 R 3 3 1 1 1 12 I WRITE(F,X:12:10-I) 00000181 P 3 3 3
1 1 I END 00000182 R I END; (* COEFFOUT *) 00000183 R I 00000184
1 I PROCEDURE INITIALIZE; 00000185 R * 1 I VAR 00000186 R 1 CaMP, 00000187 *
1 I C : INTEGER; 00000188 *
1 I BEGIN 00000189 R 1 1 I RPOWEROF1O'l" := 9.999; 00000190 2 1 1 2 I FOR C := 2 TO 9 00000191 R 4 R 1 3 I DO RPOWEROF10C' := 10.0*RP0WEROF10C_1; 00000192 R 2 4 2 4 1 4 I IP0WEROF10'1' := 10; 00000193 2 1 I(* 100 000 IS NOT A GOOD INTEGER ON SOME MACHINES *) 00000194 1 1 5 I FOR C := 2 TO 4 00000195 R 4 R 1 6 I DO IPOWER0F10C" : 10*IPOWEROF10'C_1 4 ; 00000196 R 2 4 2 4 1 7 ERROREREE := TRUE; 00000197 2 P 1 8 I ENVIRON : GLOBAL; 00000198 2 1 1 9 I ERRMKRThLOBAL := '1'; ERRMKR ROW := '5'; ERRMKR.-COLUMN7 000001992 1 2 1 2 1 1 12 I DTXT0 := 'MIN'; DTXT1'7 := 'MAX'; 00000200 2 2 1 14 I RESET(FDIN); 00000201 P 2 1 15 I RESET(FCIN); 00000202 P 2 1 16 I REWRITE(FMOUT); 00000203 P 2 1 17 I REWRITE(FBOUT); 00000204 P 2 1 18 READLN(FCIN,NOTUSED,COMP,C,TYPBIN,TYPINT,TVPSOS1,TVPSOS2); 00000205 P 2 2 4 4 2 2 2 2 1 19 I DOMIP C = COMP; 00000206 2 4 4 1 20 READLN(FCIN,NUMROWS); 00000207 P 2 2 1 21 I READLN(FCIN,NUMCOLS); 00000208 P 2 2 1 22 I READLN(FCIN,NUMNNZ); 00000209 P 2 2 1 23 I READLN(FCIN,NOTUSED); 00000210 P 2 2 1 24 I REAOLN(FCIN,OBJROSEQ); 00000211 P 2 2 1 25 1 READLN(FCIN,IDIR); 00000212 P 2 2
PASCAL/VS RELEASE 2.1
GAMS2MIP :INITIALIZE 05/09/86 19:45:58 PAGE 5
B P C I STMT#
SOURCE PROGRAM PAGE XREF
1
V---+----1----+----2----+----3----+----4----+----5----+----6----+----7V SEQ NO 26 READLN(FCIN,RESLIM); 00000213 P 2 2 27 I READLN(FCIN,ITERLIM); 000002114 P 2 2 28 I READLN(FCIN,WORK,C); SYSOUT := C = 1; 00000215 P 2 2 4 2 4 30 I READLN(FCIN,DOMLIM); 00000216 P 2 2 31 I READLN(FCIN,BRATIO); 00000217 P 2 2 32 I FOR C := 1 TO 5 00000218 R 4 R 33 I DO READ(FCIN,IUSER"C); READLN(FCIN); 00000219 R P 2 2 4 P 2 35 I FOR C := 1 TO 5 00000220 R 4 R 36 I DO READ(FCIN,XUSER'C); READLN(FCIN); 00000221 R P 2 2 4 P 2 36 I CLOSE(FCIN); 00000222 3 2
I 00000223 39 READLN(FDIN,PINF,MINF); 00000224 P 2 2 2 40 I IF NUMROWS > MAXRC 00000225 R 2 1
THEN 00000226 R 41 f PPERROR(0,'TOO MANY ROWS '); 00000227 3 42 I IF NUMCOLS > MAXRC 00000228 R 2 1
THEN 00000229 R 43 I PPERROR(0,'TOO MANY COLUMNS ') 00000230 3
I END; (* INITIALIZE *) 00000231 R I 00000232 I PROCEDURE ELIMBLIST(VAR BPTR : TBASPTR); 00000233 R * R * 1 I(* GET RID OF THE BASIS LIST *) 000002314 I VAR 00000235 R I B1PTR, 00000236 *
I B2PTR : TBASPTR; 00000237 * 1 I BEGIN 00000238 R
1 B1PTR BPTR; 00000239 5 5 2 I WHILE B1PTR <> NIL 00000240 R 5 P
I DO BEGIN 00000241 R R 3 I B2PTR : B1PTR; 000002142 5 5 4 I B1PTR B1PTR@. INDXNXT; 00000243 5 5 1 5 I DISPOSE(B2PTR) 00000244 P 5
I END; 00000245 R 6 I BPTR := NIL 00000246 5 P
I END; (* ELIMBLIST *) 00000247 R I 00000248 I PROCEDURE PROCESSROWS; 000002149 R * I VAR 00000250 R I RST : ARRAY O. . 3" OF CHAR; 00000251 * R R P I NRBPTR, 00000252 *
XRBPTR : TBASPTR; 00000253 * 1 XRI-ISPTR, 00000254 *
I NRHSPTR : TRHSPTR; 00000255 * 1 I J RCSEQT; 00000256 * 1
MARGNFLAG, 00000257 *
I ITYP : INTEGER; 00000258 *
I VALU : REAL; 00000259 * p
I BEGIN 00000260 R 1 I RSTO' := [; RST'1' := 'C'; RST'2' : 'L'; RSV73' 'N'; 00000261 5 55 5 5 I HRHSPTR : NIL; 00000262 2 P 6 I HRBASPTR := NIL; 00000263 2 P 7 I NNBROW : 0; 00000264 2 8 I READLN(FDIN); 00000265 P 2
PASCAL/VS RELEASE 2.1
GAMS2MIP :PROCESSROWS 05/09/86 19:45:58 PAGE 6
B P C I STMT#
SOURCE PROGRAM PAGE XREF
V-------- 1----+----2----+----3 --------- 4----+----5----+----6 --------- 7-V SEQ NO 9 I WRITELN(FMOUT,'NAME',' ':10,'GAMS'); 00000266 P 2 10 I WRITELN(FMOUT,'ROWS'); 00000267 P 2 11 ENVIRON := ROW; 00000268 2 1 12 I SENVIRON := SROW; 00000269 2 1 13 I FOR J := 1 TO NUMROWS 00000270 R 5 R 2
I DO BEGIN 00000271 R R 14 I GLOBALSEQ : J; 00000272 2 5 15 I READLN(FDIN,ITYP,VALU,MARGNFLAG); 00000273 P 2 5 5 5 16 I WRITELN(FMOUT,RSTITYP:2,' ', R',J:l); 00000274 P 2 5 5 5 17 I IF VALU <> 0.0 00000275 R S
I THEN 00000276 R I(* SAVE AWAY IN RHS LIST *) 00000277 I BEGIN 00000278 R
18 I NEW(NRHSPTR); 00000279 P 5 19 I WITH NRHSPTR@ 00000280 R 5
I DO BEGIN 00000281 R R 20 I ROWNUM : J; 00000282 1 5 21 I RIISVAL : VALU; 00000283 1 5 22 I ROWNXT := NIL 00000284 1 P
I END; 00000285 R 23 I IF HRHSPTR = NIL 00000286 R 2 P
I THEN 00000287 R 24 I HRHSPTR := NRHSPTR 00000288 2 5
ELSE 00000289 R 25 I [email protected] := NRHSPTR; 00000290 5 1 5 26 I XRIISPTR := NRHSPTR 00000291 5 5
I END; 00000292 R 27 I IF MARGNFLAG = 1 00000293 R 5
I THEN 00000294 R I(* SAVE AWAY INDEX OF NON-BASIC ROW *) 00000295 I BEGIN 00000296 R
28 I NEW(NRBPTR); 00000297 P 5 291 WITH NRBPTR@ 00000298 R 5
DO BEGIN 00000299 R R 30 I INOX := J; 00000300 1 5
(* BINDING G CONSTRAINTS --> SLACK AT UPPER *) 00000301 31 I UP ITYP 1; 00000302 1 5 32 INDXNXT := NIL 00000303 1 P
END; 00000304 R 33 I IF HRBASPTR = NIL 00000305 R 2 P
THEN 00000306 R 34 I HRBASPTR := NRBPTR 00000307 2 5
I ELSE 00000308 R 35 I XRBPTR@. INDXNXT := NRBPTR; 00000309 5 1 5 36 I XRBPTR := NRBPTR; 00000310 5 5 37 I NNBROW := NNBROW + 1 00000311 2 2
I END 00000312 R I END; 00000313 R
38 I NEEDBAS : NNBROW > NUMROWS*BRATIO; 00000314 2 2 2 2 39 I IF NOT NEEDBAS 00000315 R R 2
I THEN 00000316 R 40 I ELIMBLIST(HRBASPTR) 00000317 5 2
I END; (* PROCESSROWS *) 00000318 R
PASCAL/VS RELEASE 2.1 GAMS2MIP : 05/09/86 19:45:58 PAGE 7
B P C I STMT#
SOURCE PROGRAM
PAGE XREF
V -------- 1----+----2 --------- 3----+----4----+----5 --------- 6----+----7-V SEQ NO
1 1 1
I 00000319 I PROCEDURE PROCESSCOLS; 00000320 R *
I VAR 00000321 R I COEFF, 00000322 *
I LOWER 00000323 *
I LEVEL 00000324 *
I UPPER REAL; 00000325 *
I PRR, 00000326 *
I PRC : FWID; 00000327 * 1 I SAVTYP, 00000328 *
DCTYP : TMIP; 00000329 * 1 I SAVINDX, 00000330 *
I SOSINDX, 00000331 *
I MARGNFLAG, 00000332 *
I NNZ, 00000333 *
I ROW, 00000334 *
I K : POSINT; 00000335 * 1 I SAVCOL, 00000336 *
I J : RCSEQT; 00000337 * 1 I WBNDPTR : TBNDPTR; 00000338 * 1 I XRBASPTR: TBASPTR; 00000339 * 1 I DOSOS, 00000340 *
I NEEDBNDREC BOOLEAN; 00000341 *
I 00000342 I PROCEDURE SAVBNDREC(COL RCSEQT); 00000343 R * * 1
I VAR 00000344 R I NBNDPTR : TBNDPTR; 00000345 * 1 I BEGIN 00000346 R
1 I NEW(NBNDPTR); 00000347 P 7 2 I WITH NBNDPTR@ 00000348 R 7
I DO BEGIN 00000349 R R 3 I NDIG := PRC; 00000350 1 7 4 I BLO := LOWER; 00000351 1 7 5 I BLVL := LEVEL; 00000352 1 7 6 I BUP := UPPER; 00000353 1 7 7 I COLNUM := COL; 00000354 1 7 8 I MIPTYP := OCTYP; 00000355 1 7 9 I BNDNXT := NIL 00000356 1 P
I END; 00000357 R 10 IF HBNDPTR = NIL 00000358 R 2 P
I THEN 00000359 R 11 HBNDPTR := NBNDPTR 00000360 2 7
ELSE 00000361 R 12 f [email protected] := NBNDPTR; 00000362 7 1 7 13 I WBNDPTR := NBNDPTR 00000363 7 7
I END; 00000364 R I 00000365
FUNCTION TERMSOS(COL : RCSEQT) : BOOLEAN; 00000366 R * * 1 P I(* WRITES BOUND RECORD TO TERMINATE SOS SET. LO LVL UP TYP ETC INCOR *) 00000367 (* BUT WILL BE IGNORED *) 00000368
I VAR 00000369 R NUM : RCSEQT; 00000370 * 1
I BEGIN 00000371 R
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> t 05/09/86 19:45:58 PAGE 25
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE #>
7/353 8/393 8/396 8/412 8/421 8/423 9/431 9/473 10/480 10/497
VALU 5/259 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 176, LENGTH = 8 6/273 6/275 6/283
WBNDPTR 7/338 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 224, LENGTH = 4 7/362 7/363
WHERE 1/26 CLASS = TYPE, TYPE = SCALAR, LENGTH = 1 2/86 2/89
WORK 2/76 CLASS LOCAL VAR, TYPE = INTEGER, OFFSET = 696, LENGTH = 4 5/215 13/659 13/661 13/663
WRB 10/529 IN COMPLETE, CLASS = PROCEDURE 12/607 12/608 12/610 12/611 12/613 12/615
WRI 10/523 IN COMPLETE, CLASS = PROCEDURE 12/609 12/610 12/614 12/615 12/616
WRITE PREDEFINED CLASS = PROCEDURE 3/134 4/166 4/181 9/463 9/465 10/489 11/532 11/552
WRITELN PREDEFINED CLASS = PROCEDURE 3/122 3/123 3/124 3/130 3/131 3/135 5/266 6/267 6/274 8/386 8/387 9/466 9/475 10/482 10/492 10/499 10/510 10/526 11/534 11/544 11/554 11/565 11/566 11/574 12/635 14/701 14/702 14/703 14/704 14/705 14/706 14/707 14/708 14/711 14/714 14/715 14/717 14/718 14/719 14/720 14/721 14/722 14/723 14/727 14/728 14/730 14/731 14/732 14/733 14/734 14/735 14/736
WRITEOCT 13/644 IN DOCONTROL, CLASS = PROCEDURE 13/663 13/682 13/684 13/688
X 3/155 IN COEFFOUT, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 144, LENGTH = 8 4/162 4/166 4/181
X 10/529 IN WRB, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 152, LENGTH = 8 11/533
XRBASPTR 7/339 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 228, LENGTH = 4 8/390 9/455 9/459 9/468
XRBPTR 5/253 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 152, LENGTH = 4 6/309 6/310
XRHSPTR 5/254 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 156, LENGTH = 4 6/290 6/291
XUSER 2/91 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 768, LENGTH = 40
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 26
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE #>
5/221
Y 3/158 IN COEFFOIJT, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 160, LENGTH = 8 4/162 4/163 4/179
YBNDPTR 10/519 IN COMPLETE, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 156, LENGTH = 4 10/525 10/531 11/575 11/576 11/578 12/621 12/622 12/625 12/626 12/629 12/630
YRHSPTR 10/517 IN COMPLETE, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 148, LENGTH = 4 11/545 11/546 11/548 11/556 11/557
ZBNDPTR 10/520 IN COMPLETE, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 160, LENGTH = 4 12/625 12/627 12/629 12/631
ZRHSPTR 10/518 IN COMPLETE, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 152, LENGTH = 4 11/556 11/558
NO COMPILER DETECTED ERRORS
OPTIONS IN EFFECT: MARGINS(1,72), SEQ(73,80), XREF(SI-IORT), LANGLVL(EXTENDED), LINECOUNT(60), PAGEWIDTH(128), CHECK, GOSTMT, OPTIMIZE, PXREF, SOURCE, WARNING
SOURCE LINES: 751; COMPILE TIME: 1.12 SECONDS; COMPILE RATE: 40232 LPM
PASCAL/VS RELEASE 2.1 GAMS2MIP: 05/09/86 19:46:05 PAGE 1
EXTERNAL SYMBOL DICTIONARY
NAME TYPE ID ADDR LENGTH NAME TYPE ID ADDR LENGTH
GAMS2MIP SD 1 000000 002EA8 AMPXBEGN ID 0 002CFE 000001 AMPXSTRT ER 2 000000 AMPXOPEN ER 3 000000 AMPXWTXT ER 4 000000 AMPXWLIN ER 5 000000 AMPXWCHR ER 6 000000 AMPXWINT ER 7 000000 AMPXWR ER 8 000000 AMPXRINT ER 9 000000 AMPXRLIN ER 10 000000 AMPXRR ER 11 000000 AMPXDISP ER 12 000000 AMPXNEW ER 13 000000 AMPXCLOS ER 14 000000
SOURCE LINES: 751; TRANSLATE TIME: 0.70 SECONDS; TRANSLATE RATE: 64371 LPM
TOTAL TIME: 2.20 SECONDS; TOTAL RATE: 20482 LPM
PASCAL/VS RELEASE 2.1 GAMS2MIP :TERMSOS 05/09/86 19:45:58 PAGE 8
BPC I STMT# SOURCE PROGRAM PAGE XREF
V -------- 1----+----2----+----3 --------- 4 --------- 5 --------- 6----+----7-V SEQ NO 2 1 I NUM := COL - SAVCOL + 1; 00000372 7 7 7 2 1 2 I IF ((DCTYP = TYPSOS1) AND (NUM < 2)) OR M < 3)) R 7 2 R 7 R 2 1 I ((DCTYP = TYPSOS2) AND (NUM < 3)) 00000374 7 2 R 7 2 1 I THEN 00000375 R 2 1 3 I PPERROR(4,'TOO FEW VARIABLES IN SOS SET ')00000376 3 2 1 I ELSE 00000377 R 2 4 I SAVBNDREC(COL); (* BUP ETC WRONG, BUT WHO CARES *) 00000378 7 7 2 5 I TERMSOS := FALSE; 00000379 7 P 1 I END; 00000380 R 1 i 00000381 1 I BEGIN 00000382 R 1 1 I ENVIRON COLUMN; 00000383 2 1 1 2 I SENVIRON = SCOLUMN; 00000384 2 1 1 3 I READLN(FDIN); 00000385 P 2 1 4 I WRITELN(FMOUT,'COLUMNS'); 00000386 P 2 1 5 I WRITELN(FBOUT,'NAME',' ':lO,'GAMSBAS'); 00000387 P 2 1 6 DOSOS FALSE; 00000388 7 P 1 7 I HBNDPTR := NIL; 00000389 2 P 1 8 I XRBASPTR HRBASPTR; 00000390 7 2 1 1 9 I FOR J 1 TO NUMCOLS 00000391 R 7 R 2 1 1 DO BEGIN 00000392 R R
1 1 1 10 I READLN(FDIN,NNZ,LOWER,LEVEL,UPPER,MARGNFLAG,DCTYP,SOSINDX); 00000393 P 2 7 7 7 7 7 7 7 1 1 1 11 I GLOBALSEQ := J; 00000394 2 7 1 1 1 12 PRC := PRDIGITS(J); 00000395 7 3 7 1 1 1 13 I NEEDBNDREC (J = 1) OR NOT((LOWER = 0) AND (UPPER = PINF)); 00000396 7 7 R R 7 R 7 2 1 1 1 1 14 I IF DOMIP (* CANT CHECK TYPE FLAG HERE *) 00000397 R 2 1 1 1 1 I THEN 00000398 R 1 1 1 1 I BEGIN 00000399 R 2 1 2 1 .15 I IF DOSOS AND (SOSINDX <> SAVINDX) 00000400 R 7 R 7 7 2 1 2 1 I THEN 00000401 R 2 1 2 1 I(* WRITE RECORD TERMINATING SOS SET *) 00000402 2 1 1 1 16 I DOSOS := TERMSOS(J-1); . 00000403 7 7 7 2 1 2 1 17 I . IF DCTYP <> 0 00000404 R 7 2 1 2 1 I THEN 00000405 R 2 1 3 1 18 I IF DCTYP = TYPBIN 00000406 R 7 2 2 1 3 1 I THEN 00000407 R 2 1 3 1 I BEGIN 00000408 R 3 1 4 1 19 I IF LOWER <> 0.0 00000409 R 7 3 1 Li 1 I THEN 00000410 R 3 1 3 1 20 I PPERROR(5,'NONZERO LOWER BOUND ILLEGAL FOR BINARY ');IABLE 3 3 1 4 1 21 I IF UPPER <> 1.0 00000412 R 7 3 1 4 1 I THEN 00000413 R 3 1 3 1 22 PPERROR(6'UPPER BOUND REQUIRED FOR BINARY VARIABLE' );00000414 3 3 1 3 1 23 I NEEDBNDREC := TRUE 00000415 7 P 2 1 3 1 I END 00000416 R 2 1 3 1 I ELSE 00000417 R 2 1 4 1 24 I IF DCTYP = TYPINT 00000418 R 7 2 2 1 4 1 I THEN 00000419 R 2 1 4 1 I BEGIN 00000420 R 3 1 5 1 25 I IF UPPER = PINF 00000421 R 7 2 3 1 5 1 I THEN 00000422 R 3 1 4 1 26 I UPPER := 1.0; 00000423 7 3 1 5 1 27 1 IF LOWER = MINF . 00000424 R 7 2
PASCAL/VS RELEASE 2.1
GAMS2MIP :PROCESSCOLS 05/09/86 19:45:58 PAGE 9
B P C I STMT#
SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3 --------- 4----+----5--+--6--"7-V SEQ NO I THEN 00000425 R
28 I LOWER := 0.0; 00000426 7 29 NEEDBNDREC : TRUE 00000427 7 P
I END 00000428 R I ELSE (* SOS ) 00000429 R I BEGIN 00000430 R
30 I IF NOT((LOWER = 0) AND (UPPER = PINF)) 00000431 R R 7 R 7 2 THEN 00000432 R
31 I PPERROR(9,'BOUNDS ARE ILLEGAL FOR SOS VARIABLE '); 00000433 3 32 I IF NOT DOSOS 00000434 R R 7
I THEN 00000435 R I BEGIN 00000436 R
33 I DOSOS := TRUE; 00000437 7 P 34 I SAVINDX := SOSINDX; 00000438 7 7 35 SAVTVP DCTYP; 00000439 7 7 36 I SAVCOL : J; 00000440 7 7 37 I NEEDBNDREC := TRUE 00000441 7 P
I END 00000442 R I END 00000443 R I END; (* IF MIP *) 00000444 R
38 I IF NEEDBNDREC 00000445 R 7 I THEN 00000446 R I(* SAVE AWAY INFO FOR BOUNDS. LEVEL MAY BE NEEDED FOR NON-LINEAR *) 00000447 I(* CODES ALWAYS WRITE AT LEAST ONE BOUND RECORD *) 00000448
39 I SAVBNDREC(J); 00000449 7 7 40 I IF NEEDBAS 00000450 R 2
I THEN 00000451 R (* DO BASIS *) 00000452
41 I IF MARGNFLAG = 0 00000453 R 7 I THEN 00000454 R
42 I IF XRBASPTR <> NIL 00000455 R 7 P THEN 00000456 R
I(* .WRITE A ROW/COLUM BASIS RECORD *) 00000457 I BEGIN 00000458 R
43 I WITH XRBASPTR@ 00000459 R 7 I DO BEGIN 00000460 R R
44 I IF UP 00000461 R 1 THEN 00000462 R
45 I WRITE(FBOUT,' XU t) 00000463 P 2 I ELSE 00000464 R
46 I WRITE(FBOUT ' XL '); 00000465 P 2 47 I WRITELN(FB0UT,C',J:PRC,' ':9-PRC,'R',INDX:1) 00000466 P 2 7 7 7 1
I END; (* WITH *) 00000467 R 48 I XRBASPTR := XRBASPTR@. INDXNXT; 00000468 7 7 1 49 I NNBROW := NNBROW - 1; 00000469 2 2
I END 00000470 R I ELSE 00000471 R I(* GAMS SETS THEM EQUAL : NO TOLERANCE CHECKING NEEDED *) 00000472
50 I IF UPPER = LEVEL 00000473 R 7 7 I THEN 00000474 R
1 I WRITELN(FBOUT,' UL C',J:PRC); 00000475 P 2 7 7 I(* WRITE THE NON-ZEROES *) 00000476 I(********************************) 00000477
PASCAL/VS RELEASE 2.1
GAMS2MIP :PROCESSCOLS 05/09/86 19:45:58 PAGE 10
B P C I STMT#
SOURCE PROGRAM PAGE XREF
1 1 2 2 2
2 2 2
V---+----1----+----2----+----3----+----4----+----5----+----6----+-"7V SEQ NO 52 I IF (DCTYP = TYPINT) OR (DCTYP = TYPBIN) 00000478 R 7 2 R 7 2
I THEN 00000479 R 53 I IF(LOWER <> UPPER) 00000480 R 7 7
I THEN 00000481 R 54 I WRITELN(FMOUT ' t :L4, t INT',J:PRC,' ':7-PRC,'''MARKER''', 00000482 P 2 7 7 7
I ':17,'1'INTORG'''); 00000483 I(********************************) 00000484
55 I FOR K := 1 TO NNZ 00000485 R 7 R 7 I DO BEGIN 00000486 R R
56 I READLN(FDIN,ROW,COEFF); 00000487 P 2 7 7 57 I PRR := PRDIGITS(ROW) 00000488 7 3 7 58 I WRITE(FMOUT,' :4,'C,J:PRC,' ':9-PRC,'R',ROW:PRR, 00000489 P 2 7 7 7 7 7
I ' 1 :9-PRR); 00000490 7 59 I COEFFOUT(COEFF,FMOUT); 00000491 3 7 2 60 I WRITELN(FMOUT) 00000492 P 2
I END; 00000493 R I (A A * * * * * * * * * * * * * * * * * * * * * * * * * * * * * A) 00000494
61 I IF (DCTYP = TYPINT) OR (OCTYP = TYPBIN) 00000495 R 7 2 R 7 2 I THEN 00000496 R
62 I IF(LOWER <> UPPER) 00000497 R 7 7 I THEN 00000498 R
63 I WRITELNFM0UT' ':4,'INT',J:PRC,'A',,' ':6 . PRC,'''MARKER''',00000L499 P 2 7 7 7 I t :17,'1'INTEND'''); 00000500
00000501 I END; 00000502 R
64 I IF DOSOS 00000503 R 7 I THEN 00000504 R
65 I DOSOS := TERMSOS(NUMCOLS); 00000505 7 7 2 66 I IF NEEDBAS 00000506 R 2
THEN 00000507 R f ( * GET RID OF THE LIST A) 00000508 67 ELIMBLIST(HRBASPTR); 00000509 5 2 68 I WRITELN(FBOUT,'ENDATA ); 00000510 P 2 69 I CLOSE(FBOUT) 00000511 3 2
I END; (* PROCESSCOLS A) 00000512 R I 00000513 I PROCEDURE COMPLETE; 00000514 R I VAR 00000515 R I PRR : FWID; 00000516 * 1 I YRHSPTR, 00000517 I ZRHSPTR: TRHSPTR; 00000518 * 1 I YBNDPTR, 00000519 *
I ZBNDPTR : TBNDPTR; 00000520 * 1 I lB : INTEGER; 00000521 *
I 00000522 I PROCEDURE WRI(S : TCH2 ); 00000523 R * * 2 I BEGIN 00000524 R
1 I WITH YBNDPTR 00000525 R 10 2 I DO WRITELN(FMOUT, t ',S,' ',BNDNAME, t C',COLNUM:NDIG) 00000526 R P 2 10 1 1
I END; 00000527 R $ 00000528 I PROCEDURE WRB(S TGH2 ; X : REAL); 00000529 R * * 2 * I BEGIN 00000530 R
PASCAL/VS RELEASE 2.1 GAMS2MIP :WRB 05/09/86 19: 145:58 PAGE 11
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+----5----+----6----+""7V SEQ NO 2 1 I WITH YBNDPTR@ 00000531 R 10 2 2 I DO WRITE(FMOUT, ',S,' ',BNDNAME,'C t ,COLNUM:NDIG,' ':9-NDIG); 00000532 R P 2 10 1 1 1 1 2 3 I COEFFOUT(X,FMOUT); 00000533 3 10 2 2 4 I WRITELN(FMOUT) 00000534 P 2 1 I END; 00000535 R 1 I 00000536 1 I BEGIN 00000537 R 1 1 1 I IF HRHSPTR <> NIL 00000538 R 2 P 1 1 I THEN 00000539 R 1 1 (* WRITE OUT THE RHS *) 00000540 1 1 I BEGIN 00000541 R
1 1 1 2 I ENVIRON := ROW; 00000542 2 1 1 1 1 3 I SENVIRON SRHS; 00000543 2 1 1 1 1 44 I WRITELN(FMOUT,'RHS'); 00000544 P 2 1 1 1 5 I YRHSPTR HRHSPTR; 00000545 10 2 1 1 1 1 6 I WHILE YRHSPTR <> NIL 00000546 R 10 P 1 1 1 1 I DO BEGIN 00000547 R R 2 1 1 1 7 I WITH YRHSPTR@ 00000548 R 10 2 1 1 1 I DO BEGIN 00000549 R R 3 1 1 1 8 I GLOBALSEQ := ROWNUM; 00000550 2 1 3 1 1 1 9 I PRR := PRDIGITS(ROWNUM); 00000551 10 3 1 3 1 1 1 10 I WRITE(FMOUT,' t :4,RHSNAME,'R',ROWNUM:PRR,' ':9-PRR); 00000552 P 2 1 1 10 10 3 1 1 1 11 I COEFFOUT(RHSVAL,FMOUT); 00000553 3 1 2 3 1 1 1 12 I WRITELN(FMOUT) 00000554 P 2 2 1 1 1 I END; 00000555 R 2 1 1 1 13 I ZRHSPTR : YRHSPTR; 00000556 10 10 2 1 1 1 114 I YRHSPTR [email protected]; 00000557 10 10 1 2 1 1 1 15 DISPOSE(ZRHSPTR) 00000558 P 10 1 1 1 I END; 00000559 R 1 1 1 16 I HRHSPTR := NIL 00000560 2 P
1 1 I END 00000561 R 1 1 ELSE 00000562 R 1 1 I BEGIN 00000563 R 1 1 I(* ALL ZERO RI-4S: WRITE DUMMY INDIRECT COEFFICIENT FOR APEX4 *) 00000564
1 1 1 17 I WRITELN(FMOUT,'RHSt); 00000565 P 2 1 1 1 18 WRITELN(FMOUT,,' ':4,RHSNAME,'R1',' ':8,'**IND1') 00000566 P 2 1
1 I END; 00000567 R 1 1 19 I IF HBNDPTR <> NIL 00000568 R 2 P 1 1 I THEN 00000569 R 1 1 I(* WRITE OUT THE BOUNDS *) 00000570 1 1 I BEGIN 00000571 R
1 1 1 20 I ENVIRON := COLUMN; 00000572 2 1 1 1 1 21 I SENVIRON SBOUND; 00000573 2 1 1 1 1 22 I WRITELN(FMOUT,tBOUNDS'); 00000574 P 2 1 1 1 23 I YBNDPTR HBNDPTR; 00000575 10 2 1 1 1 1 24 I WHILE YBNDPTR <> NIL 00000576 R 10 P 1 1 1 1 I DO BEGIN 00000577 R R 2 1 1 1 25 I WITH VBNDPTR@ 00000578 R 10 2 1 1 1 I DO BEGIN 00000579 R R 3 1 1 1 26 GLOBALSEQ := COLNUM; 00000580 2 1 3 1 2 1 27 I IF BLO = BUP 00000581 R 1 1 3 1 2 1 I THEN 00000582 R 3 1 2 1 28 I 113 := 0 00000583 10
PASCAL/VS RELEASE 2.1
GAMS2MI P :COMPLETE
05/09/86 19:45:58
PAGE 12
B P C I STMT#
SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+----5----+----6-+-7V SEQ NO ELSE 00000584 R
BEGIN 00000585 R IF BUP = PINF 00000586 R 1 2 THEN 00000587 R
lB := 2 00000588 10 ELSE 00000589 R
IF BUP = 0.0 00000590 R 1 THEN 00000591 R
lB := 0 00000592 10 ELSE 00000593 R
lB := 1; 00000594 10 IF BLO = MINF 00000595 R 1 2 THEN 00000596 R
(B := lB + 6 00000597 10 10 ELSE 00000598 R
IF BLO = 0.0 00000599 R 1 THEN 00000600 R
lB := lB + 0 00000601 10 10 ELSE 00000602 R
lB : (B + 3 00000603 10 10 END; 00000604 R (* CONTINUOUS AND INTEGER VARIABLES *) 00000605 CASE lB OF 00000606 R 10 R
0: (* FX *) WRB('FX',BLO); 00000607 10 1 1: (* 0 NZ *) WRB( t UP',BUP); 00000608 10 1 2: (* 0 (NI *) WRI(' PL
, ); 00000609 10
(* APEX 4 *) 3: ( NZ 0 *) BEGIN WRI('MI'); WRB('L0'BLO) END; 00000610 R 10 10 1 R j . f* N7 Ni * BEGIN WRB('LO'.BLOh WRB( UP'.BUP) 00000611 R 10 1 10 1
END; 00000612 R 5: (* NZ INF *) WRB('LO',BLO); 00000613 10 1 6: (* -(NI 0 *) WRI('MI'); 00000614 10
(* APEX 4 *) 7: (* -INF NZ *) BEGIN WRI('MI'); WRB('UP',BUP) END; 00000615 R 10 10 1 R 8: (* -INF INF *) WRI('FR') 00000616 10 END 00000617 B
END; (* WITH *) 00000618 R IF DOMIP 00000619 R 2 THEN 00000620 R
IF ([email protected] = TYPSOS1) OR ) R 10 1 2 R ([email protected] = TYPSOS2) 00000622 10 1 2
THEN 00000623 B BEGIN 00000624 R ZBNDPTR : YBNDPTR; 00000625 10 10 YBNDPTR := [email protected]; 00000626 10 10 1 DISPOSE(ZBNDPTR) 00000627 P 10 END; 00000628 R
ZBNDPTR : YBNDPTR; 00000629 10 10 YBNDPTR := [email protected]; 00000630 10 10 1 DISPOSE(ZBNDPTR) 00000631 P 10 END; (* WHILE *) 00000632 R
HBNDPTR := NIL 00000633 2 P END; (* IF*) 00000634 R
WRITELN(FMOUT,'ENDATA'); 00000635 P 2 CLOSE(FMOUT); 00000636 3 2
29
30
31
32
33 34
35
36
37
38
39 40 41 42 43 45
47 48 49 51
52
53
54 55 56
57 58 59
60
61 62
PASCAL/VS RELEASE 2.1
GAMS2MIP :COMPLETE 05/09/86 19:45:58 PAGE 13
B P C I STMT#
SOURCE PROGRAM PAGE XREF
1
1 1
V---+----1----+----2----+----3----+----14----+----5----+----6----+----7-V SEQ NO 63 I CLOSE(FDIN) 00000637 3 2
I END; 00000638 R I 00000639 I PROCEDURE DOCONTROL; 00000640 R *
I( WRITE CONTROL INFORMATION. IF ERRORS CONTROL INFO SHOULD BY-PASS 4+) 00000641 I( SOLVE AND POST-PROCESSING AND RETURN CONTROL TO CAMS 4+) 00000642 I 00000643 I procedure writeoct(var f : text; ee2 : integer); 000006414 R * R * P * P I begin 00000645 R I end; 00000646 R I 00000647 I PROCEDURE PUTRFL; 000006148 R I( CYBER ONLY - WRITE CORE REQUEST FOR APEX4 4+) 00000649 I CONST 00000650 R I MAXFL = 125000; (4+ LEAVE A LITTLE FOR CMM 4+) 00000651 I VAR 00000652 R I FL, 00000653 I ROC, 00000654 '
I RECFL, 00000655 I MINFL : REAL; 00000656 *
00000657 I BEGIN 00000658 R
1 1 I IF WORK > 0 00000659 R 2 1 I THEN 00000660 R 2 2 I IF WORK < MAXFL 00000661 R 2 13 2 I THEN 00000662 R 2 3 I WRITEOCT(FCOUT,WORK,6) 00000663 13 2 2 2 I ELSE 00000664 R 2 I BEGIN 00000665 R 2 4 I ENVIRON := GLOBAL; 00000666 2 1 2 5 I PPERROR(0,'VALUE OF OPTION WORK TOO LARGE '); 00000667 3 2 I END 00000668 R 1 I ELSE 00000669 R 1 BEGIN 00000670 R 1 6 I ROC NUMROWS/NUMCOLS; 00000671 13 2 2 2 7 I IF ROC > 1.0 00000672 R 13 2 I THEN 00000673 R 1 8 I ROC := 1.0/ROC; 00000674 13 13 1 9 I MINFL : 3.45 4+ NUMROWS + 0.5 4+ NUMCOLS + 0.15*NUMNNZ ROC + 33 13 2 2 2 1 I + 0.5*NUMNNZ*ROC + 33000; 00000676 2 13 1 10 RECFL : MINFL + 3.75NUMNNZ4+ ROC; 00000677 13 13 2 13 2 11 I IF RECFL < MAXFL 00000678 R 13 13 2 I THEN 00000679 R 3 12 I IF RECFL > 36864 00000680 R 13 3 I THEN 00000681 R 3 13 I WRITEOCT(FCOUT,ROUND(RECFL),6) 00000682 13 2 P 13 3 I ELSE 00000683 R 3 14 I WRITEOCT(FCOtJT,36864,6) 00000684 13 2 2 I ELSE 00000685 R 3 15 I IF MINFL < MAXFL 00000686 R 13 13 3 I THEN 00000687 R 3 16 I WRITEOCT(FCOUT,MAXFL,6) 00000688 13 2 13 3 I ELSE 00000689 R
PAGE 14 PASCAL/VS RELEASE 2.1 GAMS2MIP :PUTRFL 05/09/86 19:145:58
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+----5----+--6 --------- 7-V SEQ NO 1 2 3 I BEGIN 00000690 R 2 2 3 17 I ENVIRON : GLOBAL; 00000691 2 1 2 2 3 18 I PPERROR(O,'NOT ENOUGH CM TO SOLVE MODEL ');00000692 3 1 2 3 I END 00000693 R
2 1 I END 00000694 R 1 I END; (* PUTRFL *) 00000695 R 1 I 00000696 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *) 00000697 1 (* INITIATE CONTROL FILE *) 00000698 1 I BEGIN 00000699 R 1 1 I REWRITE(FCOUT) 00000700 P 2 1 2 I WRITELN(FCOUT,1 ':9, 'PROGRAM'); 00000701 P 2 1 3 I WRITELN( FCOUT,' ':9,' INITIALZ' ) 00000702 P 2 1 4 I WRITELN(FCOUT,' ':9,'XMXFNLOG=0 1 P 00000703
00000704P P
2 2 1 5 ':9,'M0VE(XDATA,''CAMS'')' I WRITELN(FCOUT,'
1 6 i )'); I WRITELN(FCOUT,' ':9,'MOVE(XPBNAME,''ANDELU 00000705 P 2 1 7 I WRITELN(FCOUT,' ':9,'XCORE1000000') 00000706 P 2 1 8 I WRITELN(FCOUT,' ':9,'CONVERT(''SUMM'4,''SCRA'')'); 00000707 P2 1 9 I WRITELN(FCOUT,' ':9,'MOVE(XBOUND,''GBND'')'); 00000708 P 2 1 1 10 I IF ( IDIR=O) 00000709 R 2 1 1 THEN 00000710 R 1 1 11 I WRITELN(FCOUT,' ':9,'SETUP(''MIN'')') 00000711 P 2 1 1 I 00000712 1 1 I ELSE 00000713 R 1 12 I WRITELN(FCOUT,' ':9,'SETUP(''MAX'')'); 00000714 P 2 1 I WRITELN 00000715 P 1 13 I (FCOUT,' ':9,'MOVE(XOBJ,''R',OBJROSEQ:PRDIGITS(OBJROSEQ),''')') 000007162232 1 14 WRITELN(FCOUT,' ':9,'MOVE(XRHS,''GRHS'')'); 00000717 P 2 1 15 I WRITELN(FCOUT,' ':9,'CRASI-l'); 00000718 P 2 1 16 I WRITELN(FCOUT, ':9,'XFREQ12000'); 00000719 P 2 1 17 I WRITELN(FCOUT,' ':9,'XDELTM15'); 00000720 P 2 1 18 I WRITELN(FCOUT,' ':9,'MVADR(XDOFREQ1,ITER)'); 00000721 P 2 1 19 I .WRITELN(FCOUT,' ':9,'MVADR(XDODELTM,TIMEOUT)'); 00000722 P 2 1 20 I WRITELN(FCOUT,' ':9,'PRIMAL'); 00000723 P 2 1 1 21 I IF DOMIP 00000724 R 2 1 1 I THEN 00000725 R 1 1 I BEGIN 00000726 R
1 1 1 22 I WRITELN(FCOUT,' ':9,'XITERNO=0'); 00000727 P 2 1 1 1 23 I WRITELN(FCOUT,' ':9,'OPTIMIX'); 00000728 P 2
1 I END; 00000729 R 1 24 I WRITELN(FCOUT,' ':9, 'SOLUTION(" FILE'',' 'DPLUSERl'' )' ); 00000730 P 2 1 1
25 261
I WRITELN(FCOUT,' ':9 'EXIT') WRITELN(FCOUT,'ITER',' ':5,'SAVE(''NAME'',''BASIITER'')');
00000731 00000732
P P2
2
1 27 I WRITELN(FCOUT,' ':9, EXIT'); 00000733 P 2 1 28 I WRITELN(FCOUT,'TIMEOUT ','SAVE(''NAME'',''BASITIME'')'); 00000734 P 2 1 29 I WRITELN(FCOUT,' ':9,'EXIT ); 00000735 P 2 1 30 I WRITELN(FCOUT,' ':9,'PEND'); 00000736 P 2 1 31 I CLOSE(FCOUT) 00000737 3 2
I END; 00000738 R 00000739
I 00000740 IBEGIN 00000741 R
1 IINITIALIZE; 00000742 4
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 15
B P C I STMT# SOURCE PROGRAM PAGE XREF
V---+----1----+----2----+----3----+----4----+5+6+7V SEQ NO 1 2 hF ERRORFREE 00000743 R 2 1 ITHEN 00000144 R 1 I BEGIN 00000745 R
1 1 3 I PROCESSROWS; 00000746 5 1 1 4 I PROCESSCOLS; 00000747 7 1 1 I COMPLETE 00000748 10
5 I END; 00000749 R IDOCONTROL 00000750 13 lEND. 00000751 R
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 16
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE fl>/<INCLUDE #>:<FILE LINE II>
ABS PREDEFINED CLASS = FUNCTION 4/162
BLO 1/40 IN TBND, CLASS = FIELD, TYPE = REAL, OFFSET = 0, LENGTH 8 7/351 11/581 12/595 12/599 12/607 12/610 12/611 12/613
BLVL 1/41 IN TBND, CLASS = FIELD, TYPE = REAL, OFFSET = 8, LENGTH = 8 7/352
BNDNAME 1/14 CLASS = CONSTANT, TYPE = ARRAY 10/526 11/532
BNDNXT 1/46 IN TBND, CLASS = FIELD, TYPE = POINTER, OFFSET = 36, LENGTH = 4 7/356 7/362 12/626 12/630
BOOLEAN PREDEFINED CLASS = TYPE, TYPE = BOOLEAN, LENGTH = 1 1/53 2/105 7/341 7/366
BPTR 5/233 IN ELIMBLIST, CLASS = VAR PARAMETER, TYPE = POINTER, OFFSET = 144, LENGTH = 4 5/239 5/246
BRATIO 2/95 CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 832, LENGTH = 8 5/217 1 6/314
BUP 1/42 IN TBND, CLASS = FIELD, TYPE = REAL, OFFSET = 16, LENGTH = 8 7/353 11/581 12/586 12/590 12/608 12/611 12/615
B1PTR 5/236 IN ELIMBLIST, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 148, LENGTH = 4 5/239 5/240 5/242 5/243
B2PTR 5/237 IN ELIMBLIST, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 152, LENGTH = 4 5/242 5/244
C 4/188 IN INITIALIZE, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 148, LENGTH = 4 4/191 4/192 4/195 4/196 4/205 4/206 5/215 5/218 5/219 5/220 5/221
CHAR PREDEFINED CLASS = TYPE, TYPE = CHAR, LENGTH = 1 1/25 2/57 2/89 2/107 5/251
CLOSE 3/109 CLASS = PROCEDURE 5/222 10/511 12/636 12/637 14/737
COEFF 7/322 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 144, LENGTH = 8 10/487 10/491
COEFFOUT 3/155 CLASS = PROCEDURE 10/491 11/533 11/553
COL 7/343 IN SAVBNDREC, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 144, LENGTH = 4 7/354
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 17
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE II>
COL 7/366 IN TERMSOS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 148, LENGTH = 4 7/372 8/378
COLNUM 1/44 IN TBND, CLASS = FIELD, TYPE = INTEGER, OFFSET = 28, LENGTH = 4 7/354 10/526 11/532 11/580
COLUMN 1/26 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 1 4/199 8/383 11/572
COMP 4/187 IN INITIALIZE, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 144, LENGTH = 4 4/205 4/206
COMPLETE 10/514 CLASS = PROCEDURE 15/748
DCTYP 7/329 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 188, LENGTH = 4 7/355 8/373 8/374 8/393 8/404 8/406 8/418 9/439 9/478 10/495
DISPOSE PREDEFINED CLASS = PROCEDURE 5/244 11/558 12/627 12/631
DOCONTROL 13/640 CLASS = PROCEDURE 15/750
DOMIP 2/102 CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 857, LENGTH = 1 4/206 8/397 12/619 14/724
DOMLIM 2/79 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 708, LENGTH = 4 5/216
DOSOS 7/340 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 232, LENGTH = 1 8/388 8/400 8/403 9/434 9/437 10/503 10/505
DTXT 2/107 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 864, LENGTH =-6 4/200
EFORMATOK 1112 CLASS = CONSTANT, TYPE = BOOLEAN, VALUE = 0 4/167
ELIMBLIST 5/233 CLASS = PROCEDURE 6/317 10/509
ENVIRON 2/86 CLASS = LOCAL VAR, TYPE = SCALAR, OFFSET = 732, LENGTH = 1 3/127 3/130 3/134 4/198 6/268 8/383 11/542 11/572 13/666 14/691
ERRMKR 2/89 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 740, LENGTH = 3 3/130 3/134 4/199
ERRNUM 3/113 IN PPERROR, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 144, LENGTH = 4 3/135
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 18
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE >
ERRORFREE 2/103 CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 858, LENGTH = 1 3/116 3/120 4/197 14/743
ERRTXT 1/25 CLASS = TYPE, TYPE = ARRAY, LENGTH = 50 3/113
F 3/155 IN COEFFOUT, CLASS = VAR PARAMETER, TYPE = FILE, OFFSET = 152, LENGTH = 64 4/166 4/181
FALSE PREDEFINED CLASS = CONSTANT, TYPE = BOOLEAN, VALUE = 0 1/12 3/120 8/379 8/388
FBOUT 2/72 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 540, LENGTH = 64 4/204 8/387 9/463 9/465 9/466 9/475 10/510 10/511
FCIN 2/68 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 284, LENGTH = 64 4/202 4/205 4/207 4/208 4/209 4/210 4/211 4/212 4/213 5/214 5/215 5/216 5/217 5/219 5/221 5/222
FCOUT 2/66 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 156, LENGTH = 64 13/663 13/682 13/684 13/688 14/700 14/701 14/702 14/703 14/704 14/705 14/706 14/707 14/708 14/711 14/714 14/716 14/717 14/718 14/719 14/720 14/721 14/722 14/723 14/727 14/728 14/730 14/731 14/732 14/733 14/734 14/735 14/736 14/737
FDIN 2/67 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 220, LENGTH = 64 4/201 5/224 5/265 6/273 8/385 8/393 10/487 12/637
FMOUT 2/71 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 476, LENGTH = 64 4/203 5/266 6/267 6/274 8/386 10/482 10/489 10/491 10/492 10/499 10/526 11/532 11/533 11/534 11/544 11/552 11/553 11/554 11/565 11/566 11/574 12/635 12/636
FSTAOUT 2/69 CLASS = LOCAL VAR, TYPE = FILE, OFFSET = 348, LENGTH = 64 3/121 3/122 3/123 3/124 3/130 3/131 3/134
FWID 1/23 CLASS = TYPE, TYPE = INTEGER, LENGTH = 4 1/43 3/138 7/327 10/516
C 3/141 IN PRDIGITS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 152, LENGTH = 4 3/145 3/148 3/149 3/150 3/152
GLOBAL 1/26 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 0 3/127 4/198 4/199 13/666 14/691
GLOBALSEQ 2/88 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 736, LENGTH = 4 3/135 6/272 8/394 11/550 11/580
HBNDPTR 2/63 CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 148, LENGTH = 4 7/358 7/360 8/389 11/568 11/575 12/633
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 19
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE 1/>
HRBASPTR 2/65 CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 152, LENGTH = 4 5/263 6/305 6/307 6/317 8/390 10/509
HRHSPTR 2/61 CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 144, LENGTH = 4 5/262 6/286 6/288 11/538 11/545 11/560
I 3/160 IN COEFFOUT, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 172, LENGTH = 4 4/178 4/179 4/180 4/181
lB 10/521 IN COMPLETE, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 164, LENGTH = 4 11/583 12/588 12/592 12/594 12/597 12/601 12/603 12/606
IDIR 2/106 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 860, LENGTH = 4 4/212 14/709
INDX 1/52 IN TBAS, CLASS FIELD, TYPE = INTEGER, OFFSET = 0, LENGTH = 4 6/300 9/466
INDXNXT 1/54 IN TBAS, CLASS = FIELD, TYPE = POINTER, OFFSET = 8, LENGTH = 4 5/243 6/303 6/309 9/468
INITIALIZE 4/185 CLASS = PROCEDURE 14/742
INTEGER PREDEFINED CLASS = TYPE, TYPE = INTEGER, LENGTH = 4 2/75 2/85 2/90 3/113 3/159 4/188 5/258 10/521
13/644
IPOWEROF10 2/75 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 680, LENGTH = 16 3/143 3/149 4/193 4/196
ITERLIM /78 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 704, LENGTH = 4 5/214
ITYP 5/258 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 172, LENGTH = 4 6/273 6/214 6/302
IUSER 2/90 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 744, LENGTH = 20 5/219
J 5/256 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 164, LENGTH = 4 6/270 6/272 6/274 6/282 6/300
J 7/337 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 220, LENGTH 4 8/391 8/394 8/395 8/396 8/403 9/440 9/449 9/466 9/475 10/482 10/489 10/499
K 7/335 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 212, LENGTH = 4 10/485
K 3/138 IN PRDIGITS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 148, LENGTH = 4 3/143 3/149
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 20
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE N>
LEVEL 7/324 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 160, LENGTH = 8 7/352 8/393 9/473
LOWER 7/323 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 152, LENGTH = 8 7/351 8/393 8/396 8/409 8/424 9/426 9/431 10/480
10/497
MARGNFLAG 7/332 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 200, LENGTH = 4 8/393 9/453
MARGNFLAG 5/257 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 168, LENGTH = 4 6/273 6/293
MAXFL 13/651 IN PUTRIL, CLASS = CONSTANT, TYPE = INTEGER, VALUE = 125000 13/661 13/678 13/686 13/688
MAXINT PREDEFINED CLASS = CONSTANT, TYPE = INTEGER, VALUE = 2147483647 1/21
MAXRC 1/16 CLASS = CONSTANT, TYPE = INTEGER, VALUE = 32767 1/22 5/225 5/228
MINF 2/93 CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 816, LENGTH = 8 5/224 8/424 12/595
MINFL 13/656 IN PUTRFL, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 168, LENGTH = 8 13/675 13/677 13/686
MIPTYP 1/45 IN TBND. CLASS = FIELD, TYPE INTEGER, OFFSET = 32, LENGTH = 4 7/355 12/621 12/622
NBNDPTR 7/345 IN SAVBNDREC, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 148, LENGTH = 4 7/347 7/348 7/360 7/362 7/363
NDIG 1/43 IN TBND, CLASS = FIELD, TYPE = INTEGER, OFFSET = 24, LENGTH = 4 7/350 10/526 11/532
NEEDBAS 2/105 CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 859, LENGTH = 1 6/314 6/315 9/450 10/506
NEEDBNDREC 7/341 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 233, LENGTH = 1 8/396 8/415 9/427 9/441 9/445
NEW PREDEFINED CLASS = PROCEDURE 6/279 6/297 7/347
NIL PREDEFINED CLASS = CONSTANT, TYPE = POINTER 5/240 5/246 5/262 5/263 6/284 6/286 6/303 6/305 7/356 7/358 8/389 9/455 11/538 11/546 11/560 11/568 11/576 12/633
NNBROW 2/81 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 716, LENGTH = 4
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 21
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE #>
5/264 6/311 6/314 9/469
NNZ 7/333 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 204, LENGTH = 4 8/393 10/485
NOTUSED 2/80 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 712, LENGTH = 4 4/205 4/210
NRBPTR 5/252 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = POINTER, OFFSET = 148, LENGTH = 4 6/297 6/298 6/307 6/309 6/310
NRHSPTR 5/255 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE POINTER, OFFSET = 160, LENGTH = 4 6/279 6/280 6/288 6/290 6/291
NUM 7/370 IN TERMSOS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 152, LENGTH = 4 7/372 8/373 8/374
NUMCOLS 2/83 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 724, LENGTH = 4 4/208 5/228 8/391 10/505 13/671 13/675
NUMNNZ 2/84 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 728, LENGTH = 4 4/209 13/675 13/676 13/677
NUMROWS 2/82 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 720, LENGTH = 4 4/207 5/225 6/270 6/314 13/671 13/675
OBJROSEQ 2/77 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 700, LENGTH = 4 4/211 14/716
PINF 2/92 CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 808, LENGTH = 8 5/224 8/396 8/421 9/431 12/586
POSINT 1/21 CLASS = TYPE, TYPE = INTEGER, LENGTH = 4 3/138 3/141 7/335
PPERROR 3/113 CLASS = PROCEDURE 4/171 4/172 4/173 5/227 5/230 8/376 8/411 8/414 9/433 13/667 14/692
PRC 7/327 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 180, LENGTH = Li 7/350 8/395 9/466 9/475 10/482 10/489 10/499
PRDIGITS 3/138 CLASS = FUNCTION, TYPE = INTEGER, LENGTH = 4 3/152 8/395 10/488 11/551 14/716
PROCESSCOLS 7/320 CLASS = PROCEDURE 15/747
PROCESSROWS 5/249 CLASS = PROCEDURE 15/746
PRR 7/326 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 176, LENGTH = 4
PASCAL/VS RELEASE 2,1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 22
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE ft>/<INCLUDE #>:<FILE LINE /1>
10/488 10/489 10/490
PRR 10/516 IN COMPLETE, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 144, LENGTH = 4 11/551 11/552
RCSEQT 1/22 CLASS = TYPE, TYPE = INTEGER, LENGTH = 4 1/33 1/44 1/52 2/88 5/256 7/337 7/343 7/366 7/370
READ PREDEFINED CLASS = PROCEDURE 5/219 5/221
READLN PREDEFINED CLASS = PROCEDURE 4/205 4/207 4/208 4/209 4/210 4/211 4/212 4/213 5/214 5/215 5/216 5/217 5/219 5/221 5/224 5/265 6/273 8/385 8/393 10/487
REAL PREDEFINED CLASS = TYPE, TYPE = REAL, LENGTH = 8 1/32 1/42 2/74 2/91 2/96 3/155 3/158 5/259 7/325 10/529 13/656
RECFL 13/655 IN PUTRFL, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 160, LENGTH = 8 13/677 13/678 13/680 13/682
RESET PREDEFINED CLASS = PROCEDURE 4/201 4/202
RESLIM 2/94 CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 824, LENGTH = 8 4/213
REWRITE PREDEFINED CLASS = PROCEDURE 3/121 4/203 4/204 14/700
RHSNAME 1/15 CLASS = CONSTANT, TYPE = ARRAY 11/552 11/566
RHSVAL 1/32 IN TRHS, CLASS FIELD, TYPE = REAL, OFFSET = 0, LENGTH = 8 6/283 11/553
ROC 13/654 IN PUTRFL, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 152, LENGTH = 8 13/671 13/672 13/674 13/676 13/677
ROUND PREDEFINED CLASS = FUNCTION 13/682
ROW 7/334 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 208, LENGTH = 4 10/487 10/488 10/489
ROW 1/26 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 2 4/199 6/268 11/542
ROWNUM 1/33 IN TRHS, CLASS = FIELD, TYPE = INTEGER, OFFSET = 8, LENGTH = 4
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:45:58 PAGE 23
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE #>
6/282 11/550 11/551 11/552
ROWNXT 1/34 IN TRHS, CLASS = FIELD, TYPE = POINTER, OFFSET = 12, LENGTH = 14
6/284 6/290 11/557
RPOWEROF10 2/74 CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 608, LENGTH = 72 4/163 4/119 4/190 4/192
RST 5/251 IN PROCESSROWS, CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 144, LENGTH = 4 5/261 6/274
S 10/523 IN WRI, CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 148, LENGTH 2 10/526
S 10/529 IN WRB, CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 160, LENGTH = 2 11/532
SAVBNDREC 7/343 IN PROCESSCOLS, CLASS = PROCEDURE 8/378 9/449
SAVCOL 7/336 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 216, LENGTH = 4 7/372 9/440
SAVINDX 7/330 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 192, LENGTH = 4 8/400 9/438
SAVTYP 7/328 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 184, LENGTH = 4 9/439
SBOUND 1/27 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 2 4/173 11/573
SCOLUMN 1/27 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 1 4/171 8/384
SENVIRON 2/87 CLASS = LOCAL VAR, TYPE = SCALAR, OFFSET = 733, LENGTH = 1 14/169 6/269 8/384 11/543 11/573
SOSINDX 7/331 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 196, LENGTH = 14 8/393 8/400 9/438
SRHS 1/27 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 3 4/172 11/543
SROW 1/27 CLASS = CONSTANT, TYPE = SCALAR, VALUE = 0 4/170 6/269
SUBWHERE 1/27 CLASS = TYPE, TYPE = SCALAR, LENGTH = 1 2/87
SYSOUT 21101 CLASS = LOCAL VAR, TYPE = BOOLEAN, OFFSET = 856, LENGTH = 1 5/215
PASCAL/VS RELEASE 2.1 GAMS2MIP :<MAIN> 05/09/86 19:145:58 PAGE 24
CROSS REFERENCE LISTING
IDENTIFIER DEFINITION ATTRIBUTES FORMAT: <PAGE #>/<INCLUDE #>:<FILE LINE jl>
TBAS 1/51 CLASS = TYPE, TYPE = RECORD, LENGTH = 12 1/50
TBASPTR 1/50 CLASS = TYPE, TYPE = POINTER, LENGTH = 4 1/514 2/65 5/233 5/237 5/253 7/339
TBND 1/39 CLASS = TYPE, TYPE = RECORD, LENGTH = 40 1/38
TBNDPTR 1/38 CLASS = TYPE, TYPE = POINTER, LENGTH = 14 1/46 2/63 7/338 7/345 10/520
TCH2 2/57 CLASS = TYPE, TYPE = ARRAY, LENGTH = 2 10/523 10/529
TERMSOS 7/366 IN PROCESSCOLS, CLASS = FUNCTION, TYPE = BOOLEAN, LENGTH = 1 8/379 8/1403 10/505
TEXT PREDEFINED CLASS = TYPE, TYPE = FILE, LENGTH = 64 2/73 3/109 3/155 13/6414
TMIP 1/24 CLASS = TYPE, TYPE = INTEGER, LENGTH = 14
1/45 2/100 7/329
TRHS 1/31 CLASS = TYPE, TYPE = RECORD, LENGTH = 16 1/30
TRHSPTR 1/30 CLASS = TYPE, TYPE = POINTER, LENGTH = 4 1/34 2/61 5/255 10/518
TRUE PREDEFINED CLASS = CONSTANT, TYPE = BOOLEAN, VALUE = 1 • 4/197 8/415 9/1427 9/437 9/441
TXT 3/113 IN PPERROR, CLASS = LOCAL VAR, TYPE = ARRAY, OFFSET = 152, LENGTH = 50 3/131 3/135
TYPBIN 2/97 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 840, LENGTH = 4 14/205 8/1406 9/1478 10/495
TYPINT 2/98 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 844, LENGTH = 4 4/205 8/418 9/478 10/495
TYPSOS1 2/99 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 848, LENGTH = 4 4/205 8/373 12/621
TYPSOS2 2/100 CLASS = LOCAL VAR, TYPE = INTEGER, OFFSET = 852, LENGTH = 4 4/205 8/374 12/622
UP 1/53 IN TBAS, CLASS = FIELD, TYPE = BOOLEAN, OFFSET = 4, LENGTH = 1 6/302 9/461
UPPER 7/325 IN PROCESSCOLS, CLASS = LOCAL VAR, TYPE = REAL, OFFSET = 168, LENGTH = 8
Lawrence E. McPhail 5015 Tracy, Suite 203 Dallas, Texas 75205
May 10, 1986
Dr. Richard S. Barr School of Engineering and Applied Science Operations Research Department Southern Methodist University Dallas, Texas 75275
Dear Dr. Barr:
I submit the accompanying report entitled "GAMS/MPSX INTERFACE" as part of the requirements for OREM 4390, Senior Design.
The report presents an introduction to GAMS, a discussion on integer programming, and a description of what has already been done, and what needs to be done to complete an interface between GAMS and MPSX/370, specifically the Mixed Integer Programming/370 package.
I would specifically like to thank you, Gary Slacdek of the computer center User's Services, and Steve, the graduate student down at UT-Austin, who all gave me a great deal of help on this project.
Sincerely,
Lawrence E. McPhail OREM 4390