There's a lady in Undella Town you can talk to to get Dive. She's in front of the first house.
Chat with our AI personalities
There is no HM for Dive in SoulSilver, but you can get it by transferring a Pokemon who knows dive into SoulSilver the Pal Park. but you can get dive as a HM in Pokemon black and white but not in soulsilver,heartgold,platinum,diamond,and pearl
There's no Dive HM on Pokemon Leaf Green.
Gyarados cannot learn Dive by itself from leveling and must learn it from the HM Dive which is not available in Pokemon Platinum. The HM for Dive is only available in Pokemon versions; Ruby, Sapphire, Emerald, White, Black, White2, and Black2
After you defeat N and Ghetsis, go to Undella Town and a girl will give you the HM Dive.
There is no HM Dive in either Pokemon Silver/Gold or Heartgold/SoulSilver. It is exclusive to the Hoenn games.