Dear forum, how can I write the model and the emf info file if I have **100 followers**? See **code** below.

The followers are identical and defined with the objective and constraints/variable limits indexed by i, where i is from 1 to 100. That part is ok. **What I need help with is**:

- how to write “model master / defobj, a / submodel / defh, e /;” without having to repeat submodel1, submodel2, … submodel100,
- how to write the part “model my_emp_model / master, submodel /;” without having to repeat submodel1, submodel2, … submodel100,
- how to write the emp file part “$onecho > “%emp.info%” bilevel p max h x defh e $offecho” without having to repeat again the submodels multiple times.

## This is the **error** tha GAMS gives me:

JAMS - Solver for Extended Mathematical Programs (EMP)

*** EMP syntax error: BILEVEL: obj has to be scalar is h (item 2 on line 2)

*** EMP syntax error: key expected: is h (item 2 on line 2)

— EMP Summary

Logical Constraints = 0

Disjunctions = 0

Adjusted Constraint = 0

Flipped Constraints = 0

Dual Variable Maps = 0

Dual Equation Maps = 0

VI Functions = 0

QVI Parameters = 0

Equilibrium Agent = 0

Bilevel Followers = 0

```
set t /1*24/
i /1*100/;
variables p(t), x(i,t), z, h(i);
equations defobj,defh(i),a(i),e(i);
scalar h_0 / 0 /
u / 0.01 /
W / 5 /;
defobj.. z =e= sum(t, -p(t)*sum(i, x(i,t)));
a(i).. h(i) =e= h_0;
p.lo(t) = 0;
p.up(t) = 10;
defh(i).. h(i) =e= sum(t, p(t)*x(i,t)-u*x(i,t)**2);
e(i).. sum(t, x(i,t)) =e= W;
x.lo(i,t) = 0;
x.up(i,t) = 20;
model master / defobj, a /
submodel / defh, e /;
*Now we use EMP to solve the model
model my_emp_model / master, submodel /;
$onecho > "%emp.info%"
bilevel p
max h x defh e
$offecho
option solvelink=%SOLVELINK.CallScript%,solprint=on;
solve my_emp_model using emp max z;
```