# include # include double dran01 ( int *seed ) { int i4_huge = 2147483647; int k; double value; if ( *seed == 0 ) { printf ( "\n" ); printf ( "DRAN01 - Fatal error!\n" ); printf ( " Input value of SEED = 0.\n" ); exit ( 1 ); } k = *seed / 127773; *seed = 16807 * ( *seed - k * 127773 ) - k * 2836; if ( *seed < 0 ) { *seed = *seed + i4_huge; } value = ( double ) ( *seed ) * 4.656612875E-10; return value; }