You can save the solver status and model status along with the objective value. This also works for solves in a loop. Below is an example:
parameter report (*,*); loop {I, solve m using nlp min z; report(I,'objval') = m.objval; report(I,'modelstat') = m.modelstat; report(I,'solvestat') = m.solvestat; };
There's plenty more one could include. To get a list, just make a mis-spelling of one of the model suffices - this provokes GAMS/Base into giving you a list of the allowed ones:
2. set by gams after each solve execution domusd, etalg, etsolve, etsolver, handle, iterusd, line linkused, modelstat, nodusd, number, numdepnd, numdvar numequ, numinfes, numnlins, numnlnz, numnopt, numnz numredef, numvar, numvarproj, objest, objval, procused resgen, resusd, robj, solvestat, suminfes
You may also use a gdx file to store this information.