parse_ints Function

public function parse_ints(line) result(ints)

parse positive ints from a string that also includes text

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: line

Return Value integer, dimension(:), allocatable


Called by

proc~~parse_ints~~CalledByGraph proc~parse_ints aoc_utilities::parse_ints proc~go~8 problem_12::go proc~go~8->proc~parse_ints program~problem_12b problem_12b program~problem_12b->proc~parse_ints program~problem_4 problem_4 program~problem_4->proc~parse_ints program~problem_12 problem_12 program~problem_12->proc~go~8

Source Code

    function parse_ints(line) result(ints)
        character(len=*),intent(in) :: line
        integer,dimension(:),allocatable :: ints ! array of integers
        integer :: i, j, n
        integer :: istart
        character(len=*),parameter :: tokens = '0123456789'

        n = len(line)
        istart = 0
        allocate(ints(0))

        do i = 1, n
            if (index(tokens,line(i:i))>0) then
                if (istart==0) istart = i
            else
                if (istart/=0) ints = [ints, int(line(istart:i-1))] ! get previous int
                istart = 0
            end if
        end do
        if (istart/=0) ints = [ints, int(line(istart:n))] ! get last int

    end function parse_ints