"there's no smooth slowing down gradually"
If that's the case, maybe the problem you are facing isn't with the explosion jumping part of the code. From what I can tell, the explosion jumping part does what it is intended to do: it adds velocity to the player based on an explosive radius.
How are you handling the code that stops the player, when he is in motion? Like, the basic movement code. Maybe that's where you have to check to find your problem. If you are moving with code like this:
If W pressed -> velocity = 1.0
If W not pressed -> velocity = 0.0
Then your character does not have any momentum, meaning you haven't coded any way to naturally slow down, it is only based on key inputs. Maybe that's why you don't slow down after an explosion jump, that's my guess.