The problem of maximizing the spectral efficiency of an OFDMA broadcast channel is considered under the practical restriction of single antenna terminals. Given a total transmit power constraint and (possibly) different per-user quality of service (QoS) requirements, a subcarrier assignment and joint power and rate allocation algorithm is proposed to maximize a weighted sum of the users' rates (assuming continuous values for the rates). The proposed solution, which turns out to be a simple rate waterfilling, is very flexible since it can accommodate different scheduling criteria by tuning the users' weights involved in the maximization procedure. The output of the algorithm is quantized so as to restrict the rates to be practical values of squared QAM modulations. For small-sized systems, the comparison of the proposed algorithm with the optimal but impractical brute force search is possible and the results show excellent performance at a much lower complexity load.