You can change the parameters such as bike+rider weight and frontal area, the latter having been given a typical default value. The air resistance calculation assumes a drag coefficient of 0.9, in fact this is multiplied by the frontal area so these can be adjusted together.

Headwind and gradient can be negative. You can fiddle with the values to estimate the speed attained without pedaling (power input zero) going downhill. For example, at 40 km/h a gradient of -1:29.3 gives a net power input of roughly zero, so this is the speed which the bike would reach freewheeling down such a slope.

Complicated things like rolling friction have been ignored. When I get round to it I will do a more complicated program where you input the power wnd it calculates the speed, This needs a trial and error calculation.