A dynamic channel allocation algorithm for an Orthogonal Frequency Division Multiple Access (OFDMA) network is presented in this paper. The main objective is to perform variable resource allocation based on channel state information that optimizes the system capacity. It is assumed that the base stations have the perfect knowledge of the channel state information based on the feedback given by the mobile station. An algorithm based on the greedy approach is used to allocate the resources such as power, bandwidth and sub-channels. The sub-carrier allocation algorithm (SAA) consists of two stages. The first stage estimates the number of sub-carriers that a user needs and the second stage deals with the assignment of bit loading and power on each sub-carriers to satisfy user rate requirements. Two variations of SAA have been proposed here with respect to the sub-carriers and their transmission power. These two schemes are simulated and compared with respect to the total power allocated and allocated data rate with fairness. The average un-coded bit error rate (BER) performances of both schemes are the same and it falls below 10-3 for an SNR of 12dB under simulated channel conditions.