function genrand_real2_dSFMT() result(r) ! Return: ! random number in interval [0,1). Name comes from the function ! defined in the original Mersenne Twist implementation. real(dp) :: r if (current_element == random_store_size+1) then ! Run out of random numbers: get more. current_element = 1 call fill_array_close_open_fwrapper(random_store, & int(random_store_size, c_int)) end if r = random_store(current_element) current_element = current_element + 1 end function genrand_real2_dSFMT