/*lget worker routine for Kevin Volk quantum heating routines for grains */ #include "cddefines.h" #include "lget.h" long lget(float avals[], long int nvals, double target) { long int l1, l2, l3, lget_v, loop; # ifdef DEBUG_FUN fputs( "<+>lget()\n", debug_fp ); # endif l1 = 0; l3 = nvals + 1; if( nvals < 2 ) { lget_v = 1; # ifdef DEBUG_FUN fputs( " <->lget()\n", debug_fp ); # endif return( lget_v ); } for( loop=1; loop <= 10000000; loop++ ) { if( (l3 - l1) == 1 ) goto L_550; l2 = (l3 + l1)/2; if( target > avals[l2-1] ) { l1 = l2; } else { l3 = l2; } } L_550: lget_v = l1; # ifdef DEBUG_FUN fputs( " <->lget()\n", debug_fp ); # endif return( lget_v ); }