A flexible dynamic channel allocation algorithm for cellular mobile communications systems