ipoint Function

recursive function ipoint(ipattern, ints)

Arguments

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

first char is a .

integer(kind=ip), intent(in), dimension(:) :: ints

Return Value integer(kind=ip)


Calls

proc~~ipoint~~CallsGraph proc~ipoint problem_12b::ipoint proc~go~4 problem_12b::go proc~ipoint->proc~go~4 proc~go~4->proc~ipoint proc~get_from_cache~2 aoc_cache_module::function_cache%get_from_cache proc~go~4->proc~get_from_cache~2 proc~ipound problem_12b::ipound proc~go~4->proc~ipound proc~put_in_cache~2 aoc_cache_module::function_cache%put_in_cache proc~go~4->proc~put_in_cache~2 proc~vector_djb_hash~2 aoc_cache_module::vector_djb_hash proc~get_from_cache~2->proc~vector_djb_hash~2 proc~ipound->proc~go~4 ints_tmp ints_tmp proc~ipound->ints_tmp ipattern_tmp ipattern_tmp proc~ipound->ipattern_tmp

Called by

proc~~ipoint~~CalledByGraph proc~ipoint problem_12b::ipoint proc~go~4 problem_12b::go proc~ipoint->proc~go~4 proc~go~4->proc~ipoint proc~ipound problem_12b::ipound proc~go~4->proc~ipound proc~ipound->proc~go~4 program~problem_12b problem_12b program~problem_12b->proc~go~4

Source Code

        recursive integer(ip) function ipoint(ipattern,ints)
            integer(ip),dimension(:),intent(in) :: ipattern !! first char is a .
            integer(ip),dimension(:),intent(in) :: ints
            if (size(ipattern)<=1) then
                ipoint = go([integer(ip) ::], ints) ! done, pass in empty array
            else
                ipoint = go(ipattern(2:), ints) ! skip it and go to next one
            end if
        end function ipoint