The following problem is considered: select plant sites from a given set of sites and choose their production and distribution levels to meet known demand at discrete points at minimum cost. The construction and operating cost of each plant is assumed to be a concave function of the total production at that plant, and the distribution cost between each plant and demand point is assumed to be a concave function of the amount shipped. There may be capacity restrictions on the plants. A branch-and-bound algorithm for identifying an optimal solution is described; it is equivalent to the solution of a finite sequence of transportation problems. The algorithm is developed as a particular case of a simplified algorithm for minimizing separable concave functions over linear polyhedra. Computational results are cited for a computer code implementing the algorithm.