program seven_11 implicit none integer, parameter :: number_of_rools = 100000 integer, dimension(number_of_rools) :: dice integer, dimension(number_of_rools) :: die_1 integer, dimension(number_of_rools) :: die_2 integer :: wins integer :: i integer, parameter :: n = 20 real, dimension(n) :: p = 0.0 print *, "seven_11.f90 running", number_of_rools do i=1,n call random_int(die_1, 1, 6) ! random number from one to six call random_int(die_2, 1, 6) dice = die_1 + die_2 wins = count((dice == 7) .or. (dice == 11)) p(i) = 100.0 * real(wins) / real(number_of_rools) print "(a, f6.2)", "percent of 7 or 11", p(i) end do print "(a, f7.3)", "average", sum(p) / real(n) contains subroutine random_int(result, low, high) integer, dimension(:), intent(out) :: result integer, intent(in) :: low integer, intent(in) :: high real, dimension(size(result)) :: uniform_value call random_number(uniform_value) result = int((high-low+1) * uniform_value + low) end subroutine random_int end program seven_11