1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · general form of the gams statement...

88
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

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 2: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 3: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 4: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 5: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 6: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 7: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 8: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 9: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 10: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 11: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 12: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 13: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 14: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 15: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 16: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 17: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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*

Page 18: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 19: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 20: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 21: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 22: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 23: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 24: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 25: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 26: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 27: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 28: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

****

Page 29: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 30: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 31: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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...

Page 32: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 33: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 34: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

** * ** **** ******** ***************** ***** * * * ****

****

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 35: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 36: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 37: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 38: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 39: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 40: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

****

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.

** * ** ******** ** ******** **** ****** ****** ** * ********** **** ***** ***** **** *

Page 41: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 42: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

** * **** * ****** * ***** **** **** ***** ** ********************* * *** **** *

********

**** 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.

Page 43: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 44: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 45: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 46: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 *

Page 47: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

* * ***** **** ************ ***** * ** ****** ** ************** ** ***********************************************************************

Page 48: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 49: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 50: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 51: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 52: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 53: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 54: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 55: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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.

Page 56: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 57: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 58: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 59: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 60: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

*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 61: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 62: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 *

Page 63: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 64: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 65: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 66: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 67: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 68: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 69: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 70: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 71: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 72: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 73: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 74: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 75: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 76: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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 77: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 78: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 79: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 80: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 81: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 82: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 83: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 84: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 85: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 86: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 87: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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

Page 88: 1986-13s2.smu.edu/.../uploads/86-04-gams_mpsx_interface.pdf · General form of the GAMS statement GAMS Input SETS Keyword DATA SOLUTION GAMS Output Echo Print Symbol Listing ... The

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