This paper proposes a new resource allocation algorithm for uplink OFDMA-based cooperative relay networks, assuming multiple user nodes, multiple relay nodes and a single destination. The aim is to maximise the total sum of the users' data rates, while guaranteeing fairness among them with different QoS requirements. Assuming perfect channel state information (CSI) at the resource allocation controller, the optimisation problem is formulated such that each user is assigned a weight factor based on its QoS requirements. The ones with higher weights are given higher priorities to select their resources (relay stations and subcarriers) first. Once the required QoS is achieved for all users, the weight factor for all users is reduced to a small uniform value. The remaining resources are then allocated to the users with higher instantaneous rates in order of magnitude. The results show that the proposed algorithm outperforms the greedy and static algorithms in terms of outage probability and fairness, and at the same time outperforms Jeong's algorithm by 58% in terms of total sum rate, with an average 74% reduction in system complexity.