A batch classifier can count values that cross a threshold and map the count to a label.

Program

Play the program to choose a threshold and see the batch label change.

classify_batches_pipeline.f90
program classify_batches_pipeline_demo
    implicit none
    integer :: values(3)
    integer :: threshold
    integer :: high_count
    integer :: i
    character(len=6) :: label

    values = [4, 8, 11]
    threshold = 
    high_count = 0
    do i = 1, 3
        if (values(i) >= threshold) high_count = high_count + 1
    end do
    if (high_count >= 2) then
        label = 'keep'
    else
        label = 'drop'
    end if
    print '(I0, 1X, A)', high_count, trim(label)
end program classify_batches_pipeline_demo
program classify_batches_pipeline_demo
    implicit none
    integer :: values(3)
    integer :: threshold
    integer :: high_count
    integer :: i
    character(len=6) :: label

    values = [4, 8, 11]
    threshold = 
    high_count = 0
    do i = 1, 3
        if (values(i) >= threshold) high_count = high_count + 1
    end do
    if (high_count >= 2) then
        label = 'keep'
    else
        label = 'drop'
    end if
    print '(I0, 1X, A)', high_count, trim(label)
end program classify_batches_pipeline_demo
program classify_batches_pipeline_demo
    implicit none
    integer :: values(3)
    integer :: threshold
    integer :: high_count
    integer :: i
    character(len=6) :: label

    values = [4, 8, 11]
    threshold = 
    high_count = 0
    do i = 1, 3
        if (values(i) >= threshold) high_count = high_count + 1
    end do
    if (high_count >= 2) then
        label = 'keep'
    else
        label = 'drop'
    end if
    print '(I0, 1X, A)', high_count, trim(label)
end program classify_batches_pipeline_demo
threshold `values(i) >= threshold` decides whether a row is counted.
label The final label is based on the accumulated count.
composition The program separates counting from labeling.