This piece of software implements an Augmented Lagrangian method 
described in [1]. This particular implementation, specially designed 
for large-scale and arbitrary lower-level constraints problems solves 
the Augmented Lagrangian  subproblems using the Spectral projected 
Gradient (SPG) method introduced in [2,3].

[1] R. Andreani, E. G. Birgin, J. M. Martnez and M. L. Schuverdt, 
"On Augmented Lagrangian methods with general lower-level constraints", 
submitted, 2005.

[2]  E. G. Birgin, J. M. Martnez and M. Raydan, "Nonmonotone spectral 
projected gradient methods on convex sets", SIAM Journal on 
Optimization 10, pp. 1196-1211, 2000.

[3] E. G. Birgin, J. M. Martnez and M. Raydan, "Algorithm 813: SPG - 
software for convex-constrained optimization", ACM Transactions on 
Mathematical Software 27, pp. 340-349, 2001.

Description of the files:

alspg.for    : implements the optimization method,

alspg.out    : is the output of the optimization method for a very easy 
               problem,

solution.txt : the solution of this easy problem found by ALSPG.

For an easy test copy the file alspg.for. Compile typing

f77 -O4 alspg.for -o alspg

and execute typing

alspg.

The output that will appear in the screen will be the application of ALSPG
to a very easy problem implemented in subroutines

inip    : set the number of variables, the number of constraints, the bounds
          the initial points and other few parameters of the problem,

evalf   : computes the objective function,

evalg   : computes the gradient of the objective funtion,

evalc   : computes the constraints, and

evaljac : computes the gradients of the constraints.

Solution will be saved in the output file solution.txt. Moreover, everything
that appears in the screen will be also saved in the file alspg.out. All 
the subroutines described above can be easily modified to solve your own 
problem.
