$set MODELNAME %1 $set SOLVEX $label concat $ set SOLVEX %SOLVEX% %1 $ shift $if not x%1==x $goTo concat Set mattrib / system.GUSSModelAttributes /; Parameter solveRep(mattrib); put_utility 'ECArguments' / gams.sysdir '/'; put_utility 'Save' / 'solve_engine.g00'; embeddedCode Python: import sys import os engine_configuration = GamsEngineConfiguration( host=os.environ["ENGINE_URL"], username=os.environ["ENGINE_USER"], password=os.environ["ENGINE_PASSWORD"], namespace=os.environ["ENGINE_NAMESPACE"]) ws = GamsWorkspace(system_directory=gams.arguments, working_directory=".") cp = ws.add_checkpoint("solve_engine.g00") opt = ws.add_options() opt.savepoint = 1 # this let's Engine create %MODELNAME%_p.gdx model_string = "solve %SOLVEX%;" for ma in gams.get("mattrib"): model_string = model_string + f"\nsolveRep('{ma}') = %MODELNAME%.{ma};" model_string = model_string + "\nexecute_unload 'solverep.gdx', solveRep;" job = ws.add_job_from_string(model_string, cp) job.run_engine(engine_configuration, output=sys.stdout, gams_options=opt, create_out_db=False) out_db = ws.add_database_from_gdx("solverep.gdx") gams.set("solveRep", out_db["solveRep"]) endEmbeddedCode solveRep execute_loadpoint '%MODELNAME%_p.gdx'; %MODELNAME%.ModelStat = solveRep('ModelStat'); %MODELNAME%.SolveStat = solveRep('SolveStat'); %MODELNAME%.NumInfes = solveRep('NumInfes '); %MODELNAME%.SumInfes = solveRep('SumInfes '); %MODELNAME%.IterUsd = solveRep('IterUsd '); %MODELNAME%.ResUsd = solveRep('ResUsd '); %MODELNAME%.ObjVal = solveRep('ObjVal '); %MODELNAME%.NodUsd = solveRep('NodUsd '); %MODELNAME%.ObjEst = solveRep('ObjEst '); %MODELNAME%.DomUsd = solveRep('DomUsd '); %MODELNAME%.RObj = solveRep('RObj '); %MODELNAME%.MaxInfes = solveRep('MaxInfes '); %MODELNAME%.MeanInfes = solveRep('MeanInfes');