This is "READMEinstall.txt" for MINOS 5.6 and Quad MINOS 5.6.
It describes how to run MINOS 5.6 on Linux and Unix systems
using archive libraries.

minos56 below is the top directory for MINOS 5.6.
Interpret this as "qminos56" when installing Quad MINOS 5.6.

Originally developed on Redhat Linux with g77
but intended for other Unix-type systems and compilers.
Now maintained on Apple Mac OX X 10.6.8 with gfortran.
Should work with other systems and compilers as long as
you know how to use them.

Michael Saunders, SOL, Stanford University.
saunders@stanford.edu       (650) 723-1875

01 Oct 2002: First version of READMEinstall.txt.
27 Jan 2003: Updated to work with Michael Friedlander's Makefile.
30 Jul 2003: Executables no longer have .exe suffix.
03 Jan 2006: Feedback from Paul Tseng.
             Instructions now given for defining LD_LIBRARY_PATH
             with both setenv (csh, tcsh) and export (bash).
06 Jun 2013: mi27lu.f updated to improve LUSOL TRP efficiency.
             See item 5 in READMEchanges.txt.
17 Mar 2014: mi27lu.f is now strictly f77 to allow for f2c translation.
             m2bsol in mi26bfac.f modified accordingly.
---------------------------------------------------------------------

The MINOS distribution contains the following directories:

   minos56            Top directory
   minos56/src        Source code
   minos56/examples   Collection of test problems
   minos56/test       The same test problems for changing and running


========================================
To compile MINOS libraries
========================================

   cd minos56         Top directory

Check that Makefile.defs selects a suitable compiler.
USEgfortran = yes specifies that it should use gfortran.

Check that Makefile looks suitable for your machine.

   make clean          is not needed the first time
   make                creates lib/libminos.a and lib/libminosdbg.a


====================================
To run MINOS as a stand-alone system
using MPS files for constraint data
====================================

   cd test             puts you in minos56/test

Check that "Makefile" looks ok for your machine.
Do ONE of the following:

   make minos          makes an executable file for stand-alone MINOS.
                       It links mi00main and mi05funs to ../lib/libminos.a.
                       (mi00main.f and mi05funs.f are a copy of
                       the corresponding ../src/ files.)
or
   make minos DBG=dbg  makes an executable using ../lib/libminosdbg.a.

Now try running minos on various SPECS and MPS files:

   ./run                    (gives help about "run")
   ./run minos t1diet       (runs minos on t1diet.mps with t1.diet.spc)
   ./run minos t2banana
   ./run minos t3qp
   ./run minos t4manne
   ./run minos t5weapon
   ./run minos t6wood       (as many as you want to)

   ./run minos pilotja lp   (tests pilotja.mps with options in lp.spc)


=====================================================
To run some test programs that call MINOS
as a subroutine (named minoss with two s's).
Most examples use nonlinear functions in mi05funs.f.
spring.f is self-contained.
=====================================================

   make minost          (tests a single call to subroutine minoss)
   ./minost

   make minost2         (tests request for memory estimate)
   ./minost2

   make minost3         (tests Warm and Hot starts)
   ./minost3

   make minosm          (tests input from MPS file)
   ./minosm

   make ramsey          (variable-size version of t4manne)
   ./ramsey

   make spring          (self-contained problem)
   ./spring


==================================================================
That's it for now!
Now concentrate on your own models!

Take care with the scaling of the constraints and variables.
Then you won't have to change the default parameters.
For example,
   Feasibility tolerance   1e-6
   Optimality  tolerance   1e-6
are good for most purposes.

Choose bounds to keep variables away from singularities.
For example, if you have x*log(x) in your objective,
make sure the lower bound on x is bigger than the
Feasibility tolerance (default 1e-6), because MINOS allows
variables to go outside their bounds by almost that much.

If you get stuck, set

   Print level      1
   Print frequency  1
   Solution       Yes

and send the Print file as an attachment to saunders@stanford.edu,
but if that gives you a giant file, set

   Print level      0
   Solution        No

and send that first.
==================================================================
