ship = new IloNumVar[nW][nC];
IloLinearNumExpr expr = cplex.linearNumExpr();
// declare the variables and simultaneously assemble the objective function
for (int i = 0; i < nW; i++) {
use[i] = cplex.boolVar("Use" + i);
expr.addTerm(fixed[i], use[i]);
for (int j = 0; j < nC; j++) {
ship[i][j] = cplex.numVar(0.0, Math.min(capacity[i], demand[j]),
"Ship_" + i + "_" + j);
expr.addTerm(flow[i][j], ship[i][j]);
}