go Function

function go(time, distance) result(iproduct)

Arguments

Type IntentOptional Attributes Name
integer(kind=ip), intent(in), dimension(:) :: time
integer(kind=ip), intent(in), dimension(:) :: distance

Return Value integer(kind=ip)


Called by

proc~~go~7~~CalledByGraph proc~go~7 problem_6::go program~problem_6 problem_6 program~problem_6->proc~go~7

Source Code

function go(time, distance) result(iproduct)
    integer(ip),dimension(:),intent(in) :: time
    integer(ip),dimension(:),intent(in) :: distance
    integer(ip) :: iproduct
    integer(ip) :: i, ihold, iways, idistance
    iproduct = 1
    do i = 1, size(time)
        iways = 0
        do ihold = 1, time(i) ! time to hold the button
            idistance = ihold * (time(i)-ihold)
            if (idistance > distance(i)) iways = iways + 1
        end do
        iproduct = iproduct * iways
    end do
end function go