/**
   * Method for calculating & setting crop need
   *
   * @param crop EnumFood
   * @param tonsConsumed 2014 production + imports - exports
   * @param percentUndernourished 2014 % of population undernourished
   */
  public final void setCropNeedPerCapita(
      EnumFood crop, double tonsConsumed, double percentUndernourished) {
    for (AgriculturalUnit unit : entities) {
      unit.setCropNeedPerCapita(crop, tonsConsumed, percentUndernourished);
    }

    double population = getPopulation(START_YEAR);
    double tonPerPerson = tonsConsumed / (population - 0.5 * percentUndernourished * population);
    cropNeedPerCapita[crop.ordinal()] = tonPerPerson;
  }
  /**
   * Method for setting crop need when already known (e.g., when copying).
   *
   * @param crop EnumFood
   * @param tonPerPerson 2014 ton/person
   */
  public final void setCropNeedPerCapita(EnumFood crop, double tonPerPerson) {
    // Divide it up amongst the units.
    //
    double perUnit = tonPerPerson / entities.size();
    double remainder = tonPerPerson % (entities.size() * perUnit);
    for (AgriculturalUnit unit : entities) {
      unit.setCropNeedPerCapita(crop, perUnit + remainder);
      remainder = 0;
    }

    cropNeedPerCapita[crop.ordinal()] = tonPerPerson;
  }