You get it way too late in the game. Gyarados takes a lot to raise. My team is usually high 30's to low 40's by then and I dont like having my pokemon too far apart. For example my team are all 1-3 lvls apart at most. Before each gym leader I train them to all be the same lvl and at least 10 lvls higher than some of the gym leaders to overwhelm them. On top of that I only use 3 water types in the Johto games, Kingler (The one I use most), Tentacruel, or Feraligator.