The model you attach is “proven infeasible” if you check the process log. Therefore, the solution reported is not feasible and is not supposed to make any sense. You have to first make it feasible, get a feasible solution and then check the solution.

The constraints you have for selecting only one of the capacities look good to me but your problem is infeasibility of the overall problem. To debug this, you can start from a known feasible solution (a solution that you know should be feasible) and checking which constraints are violated. Another way is to remove/relax certain constraints and bounds to see if the solution makes sense. An automated way is to use CPLEX option iis https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXiis that gives you a minimal set of contradicting constraints. You will have to use solver options file for this as mentioned here https://www.gams.com/latest/docs/UG_SolverUsage.html#BASIC_USAGE_SOLVER_OPTION_FILE

I used iis on your problem and got the following:

```
Number of equations in conflict: 1
fixed: eq2(40) = 375.593
Number of variables in conflict: 252
fixed: Bfr(40,1,1) = 0
fixed: Bfr(40,1,2) = 0
fixed: Bfr(40,1,3) = 0
fixed: Bfr(40,1,4) = 0
fixed: Bfr(40,1,5) = 0
fixed: Bfr(40,1,6) = 0
fixed: Bfr(40,1,7) = 0
fixed: Bfr(40,1,8) = 0
fixed: Bfr(40,1,9) = 0
fixed: Bfr(40,1,10) = 0
fixed: Bfr(40,1,11) = 0
fixed: Bfr(40,1,12) = 0
fixed: Bfr(40,2,1) = 0
fixed: Bfr(40,2,2) = 0
fixed: Bfr(40,2,3) = 0
fixed: Bfr(40,2,4) = 0
fixed: Bfr(40,2,5) = 0
fixed: Bfr(40,2,6) = 0
fixed: Bfr(40,2,7) = 0
fixed: Bfr(40,2,8) = 0
fixed: Bfr(40,2,9) = 0
fixed: Bfr(40,2,10) = 0
fixed: Bfr(40,2,11) = 0
fixed: Bfr(40,2,12) = 0
fixed: Bfr(40,3,1) = 0
fixed: Bfr(40,3,2) = 0
fixed: Bfr(40,3,3) = 0
fixed: Bfr(40,3,4) = 0
fixed: Bfr(40,3,5) = 0
fixed: Bfr(40,3,6) = 0
fixed: Bfr(40,3,7) = 0
fixed: Bfr(40,3,8) = 0
fixed: Bfr(40,3,9) = 0
fixed: Bfr(40,3,10) = 0
fixed: Bfr(40,3,11) = 0
fixed: Bfr(40,3,12) = 0
fixed: Bfr(40,4,1) = 0
fixed: Bfr(40,4,2) = 0
fixed: Bfr(40,4,3) = 0
fixed: Bfr(40,4,4) = 0
fixed: Bfr(40,4,5) = 0
fixed: Bfr(40,4,6) = 0
fixed: Bfr(40,4,7) = 0
fixed: Bfr(40,4,8) = 0
fixed: Bfr(40,4,9) = 0
fixed: Bfr(40,4,10) = 0
fixed: Bfr(40,4,11) = 0
fixed: Bfr(40,4,12) = 0
fixed: Bfr(40,5,1) = 0
fixed: Bfr(40,5,2) = 0
fixed: Bfr(40,5,3) = 0
fixed: Bfr(40,5,4) = 0
fixed: Bfr(40,5,5) = 0
fixed: Bfr(40,5,6) = 0
fixed: Bfr(40,5,7) = 0
fixed: Bfr(40,5,8) = 0
fixed: Bfr(40,5,9) = 0
fixed: Bfr(40,5,10) = 0
fixed: Bfr(40,5,11) = 0
fixed: Bfr(40,5,12) = 0
fixed: Bfr(40,6,1) = 0
fixed: Bfr(40,6,2) = 0
fixed: Bfr(40,6,3) = 0
fixed: Bfr(40,6,4) = 0
fixed: Bfr(40,6,5) = 0
fixed: Bfr(40,6,6) = 0
fixed: Bfr(40,6,7) = 0
fixed: Bfr(40,6,8) = 0
fixed: Bfr(40,6,9) = 0
fixed: Bfr(40,6,10) = 0
fixed: Bfr(40,6,11) = 0
fixed: Bfr(40,6,12) = 0
fixed: Bfr(40,7,1) = 0
fixed: Bfr(40,7,2) = 0
fixed: Bfr(40,7,3) = 0
fixed: Bfr(40,7,4) = 0
fixed: Bfr(40,7,5) = 0
fixed: Bfr(40,7,6) = 0
fixed: Bfr(40,7,7) = 0
fixed: Bfr(40,7,8) = 0
fixed: Bfr(40,7,9) = 0
fixed: Bfr(40,7,10) = 0
fixed: Bfr(40,7,11) = 0
fixed: Bfr(40,7,12) = 0
fixed: Bfr(40,8,1) = 0
fixed: Bfr(40,8,2) = 0
fixed: Bfr(40,8,3) = 0
fixed: Bfr(40,8,4) = 0
fixed: Bfr(40,8,5) = 0
fixed: Bfr(40,8,6) = 0
fixed: Bfr(40,8,7) = 0
fixed: Bfr(40,8,8) = 0
fixed: Bfr(40,8,9) = 0
fixed: Bfr(40,8,10) = 0
fixed: Bfr(40,8,11) = 0
fixed: Bfr(40,8,12) = 0
fixed: Bfr(40,9,1) = 0
fixed: Bfr(40,9,2) = 0
fixed: Bfr(40,9,3) = 0
fixed: Bfr(40,9,4) = 0
fixed: Bfr(40,9,5) = 0
fixed: Bfr(40,9,6) = 0
fixed: Bfr(40,9,7) = 0
fixed: Bfr(40,9,8) = 0
fixed: Bfr(40,9,9) = 0
fixed: Bfr(40,9,10) = 0
fixed: Bfr(40,9,11) = 0
fixed: Bfr(40,9,12) = 0
fixed: Bfr(40,10,1) = 0
fixed: Bfr(40,10,2) = 0
fixed: Bfr(40,10,3) = 0
fixed: Bfr(40,10,4) = 0
fixed: Bfr(40,10,5) = 0
fixed: Bfr(40,10,6) = 0
fixed: Bfr(40,10,7) = 0
fixed: Bfr(40,10,8) = 0
fixed: Bfr(40,10,9) = 0
fixed: Bfr(40,10,10) = 0
fixed: Bfr(40,10,11) = 0
fixed: Bfr(40,10,12) = 0
fixed: Bfr(40,11,1) = 0
fixed: Bfr(40,11,2) = 0
fixed: Bfr(40,11,3) = 0
fixed: Bfr(40,11,4) = 0
fixed: Bfr(40,11,5) = 0
fixed: Bfr(40,11,6) = 0
fixed: Bfr(40,11,7) = 0
fixed: Bfr(40,11,8) = 0
fixed: Bfr(40,11,9) = 0
fixed: Bfr(40,11,10) = 0
fixed: Bfr(40,11,11) = 0
fixed: Bfr(40,11,12) = 0
fixed: Bfr(40,12,1) = 0
fixed: Bfr(40,12,2) = 0
fixed: Bfr(40,12,3) = 0
fixed: Bfr(40,12,4) = 0
fixed: Bfr(40,12,5) = 0
fixed: Bfr(40,12,6) = 0
fixed: Bfr(40,12,7) = 0
fixed: Bfr(40,12,8) = 0
fixed: Bfr(40,12,9) = 0
fixed: Bfr(40,12,10) = 0
fixed: Bfr(40,12,11) = 0
fixed: Bfr(40,12,12) = 0
fixed: Bfr(40,13,1) = 0
fixed: Bfr(40,13,2) = 0
fixed: Bfr(40,13,3) = 0
fixed: Bfr(40,13,4) = 0
fixed: Bfr(40,13,5) = 0
fixed: Bfr(40,13,6) = 0
fixed: Bfr(40,13,7) = 0
fixed: Bfr(40,13,8) = 0
fixed: Bfr(40,13,9) = 0
fixed: Bfr(40,13,10) = 0
fixed: Bfr(40,13,11) = 0
fixed: Bfr(40,13,12) = 0
fixed: Bfr(40,14,1) = 0
fixed: Bfr(40,14,2) = 0
fixed: Bfr(40,14,3) = 0
fixed: Bfr(40,14,4) = 0
fixed: Bfr(40,14,5) = 0
fixed: Bfr(40,14,6) = 0
fixed: Bfr(40,14,7) = 0
fixed: Bfr(40,14,8) = 0
fixed: Bfr(40,14,9) = 0
fixed: Bfr(40,14,10) = 0
fixed: Bfr(40,14,11) = 0
fixed: Bfr(40,14,12) = 0
fixed: Bfr(40,15,1) = 0
fixed: Bfr(40,15,2) = 0
fixed: Bfr(40,15,3) = 0
fixed: Bfr(40,15,4) = 0
fixed: Bfr(40,15,5) = 0
fixed: Bfr(40,15,6) = 0
fixed: Bfr(40,15,7) = 0
fixed: Bfr(40,15,8) = 0
fixed: Bfr(40,15,9) = 0
fixed: Bfr(40,15,10) = 0
fixed: Bfr(40,15,11) = 0
fixed: Bfr(40,15,12) = 0
fixed: Bfr(40,16,1) = 0
fixed: Bfr(40,16,2) = 0
fixed: Bfr(40,16,3) = 0
fixed: Bfr(40,16,4) = 0
fixed: Bfr(40,16,5) = 0
fixed: Bfr(40,16,6) = 0
fixed: Bfr(40,16,7) = 0
fixed: Bfr(40,16,8) = 0
fixed: Bfr(40,16,9) = 0
fixed: Bfr(40,16,10) = 0
fixed: Bfr(40,16,11) = 0
fixed: Bfr(40,16,12) = 0
fixed: Bfb(40,1,1) = 0
fixed: Bfb(40,1,2) = 0
fixed: Bfb(40,1,3) = 0
fixed: Bfb(40,1,4) = 0
fixed: Bfb(40,1,5) = 0
fixed: Bfb(40,1,6) = 0
fixed: Bfb(40,1,7) = 0
fixed: Bfb(40,1,8) = 0
fixed: Bfb(40,1,9) = 0
fixed: Bfb(40,1,10) = 0
fixed: Bfb(40,1,11) = 0
fixed: Bfb(40,1,12) = 0
fixed: Bfb(40,2,1) = 0
fixed: Bfb(40,2,2) = 0
fixed: Bfb(40,2,3) = 0
fixed: Bfb(40,2,4) = 0
fixed: Bfb(40,2,5) = 0
fixed: Bfb(40,2,6) = 0
fixed: Bfb(40,2,7) = 0
fixed: Bfb(40,2,8) = 0
fixed: Bfb(40,2,9) = 0
fixed: Bfb(40,2,10) = 0
fixed: Bfb(40,2,11) = 0
fixed: Bfb(40,2,12) = 0
fixed: Bfb(40,3,1) = 0
fixed: Bfb(40,3,2) = 0
fixed: Bfb(40,3,3) = 0
fixed: Bfb(40,3,4) = 0
fixed: Bfb(40,3,5) = 0
fixed: Bfb(40,3,6) = 0
fixed: Bfb(40,3,7) = 0
fixed: Bfb(40,3,8) = 0
fixed: Bfb(40,3,9) = 0
fixed: Bfb(40,3,10) = 0
fixed: Bfb(40,3,11) = 0
fixed: Bfb(40,3,12) = 0
fixed: Bfb(40,4,1) = 0
fixed: Bfb(40,4,2) = 0
fixed: Bfb(40,4,3) = 0
fixed: Bfb(40,4,4) = 0
fixed: Bfb(40,4,5) = 0
fixed: Bfb(40,4,6) = 0
fixed: Bfb(40,4,7) = 0
fixed: Bfb(40,4,8) = 0
fixed: Bfb(40,4,9) = 0
fixed: Bfb(40,4,10) = 0
fixed: Bfb(40,4,11) = 0
fixed: Bfb(40,4,12) = 0
fixed: Bfb(40,5,1) = 0
fixed: Bfb(40,5,2) = 0
fixed: Bfb(40,5,3) = 0
fixed: Bfb(40,5,4) = 0
fixed: Bfb(40,5,5) = 0
fixed: Bfb(40,5,6) = 0
fixed: Bfb(40,5,7) = 0
fixed: Bfb(40,5,8) = 0
fixed: Bfb(40,5,9) = 0
fixed: Bfb(40,5,10) = 0
fixed: Bfb(40,5,11) = 0
fixed: Bfb(40,5,12) = 0
```

This shows that eq2(40) is fixed to 375… some nonzero value but Bfr(40, …) and Bfb(40, …) are fixed to zero. You cannot have a nonzero value by adding multiple zeros. This could be a good starting point for your debugging. You can check whether you really want all those Bfb and Bfr to be 0 and/or if the parameter farm_yield(40) should be nonzero. It is very likely that you will again get an infeasible solution but you can repeat this procedure with iis and resolve your issue.