you may find that you could insert a %DO loop inside the macro where you want to do some looping.
Alternatively you can create a wrapper macro that will derive the value you want to supply and then call your %prog_iter. Something like this untested code:
%macro looping( from_value= 0, to_value= 1, by_val= .01 );
%* but because simple old sas macro iterative %do from/to/by looping expects integers, ...;
%let this val = &from_val ;
%do %while( %sysevalf( &this_val LE &to_val ) ;
%prog_iter( k= &this_val )
%let this_val = %sysevalf( &this_val + &by_val ) ;
%end ;
%mend looping ;
which you could invoke with
%looping( from_value= .01, to_value= .9, by_val= .015 )
but be very careful before extending the use of this %looping to negative &by_val 😉
peterC