A compact inventory case can scan in-memory tables and decide how many units to reorder.

Program

Play the program to choose an item id and compute the matching reorder quantity.

inventory_reorder_case.f90
program inventory_reorder_case_demo
    implicit none
    integer :: ids(3)
    integer :: stock(3)
    integer :: minimums(3)
    integer :: query_id
    integer :: i
    integer :: reorder

    ids = [101, 102, 103]
    stock = [5, 12, 2]
    minimums = [8, 10, 6]
    query_id = 
    reorder = 0
    do i = 1, 3
        if (ids(i) == query_id) reorder = max(0, minimums(i) - stock(i))
    end do
    print '(I0, 1X, I0)', query_id, reorder
end program inventory_reorder_case_demo
program inventory_reorder_case_demo
    implicit none
    integer :: ids(3)
    integer :: stock(3)
    integer :: minimums(3)
    integer :: query_id
    integer :: i
    integer :: reorder

    ids = [101, 102, 103]
    stock = [5, 12, 2]
    minimums = [8, 10, 6]
    query_id = 
    reorder = 0
    do i = 1, 3
        if (ids(i) == query_id) reorder = max(0, minimums(i) - stock(i))
    end do
    print '(I0, 1X, I0)', query_id, reorder
end program inventory_reorder_case_demo
program inventory_reorder_case_demo
    implicit none
    integer :: ids(3)
    integer :: stock(3)
    integer :: minimums(3)
    integer :: query_id
    integer :: i
    integer :: reorder

    ids = [101, 102, 103]
    stock = [5, 12, 2]
    minimums = [8, 10, 6]
    query_id = 
    reorder = 0
    do i = 1, 3
        if (ids(i) == query_id) reorder = max(0, minimums(i) - stock(i))
    end do
    print '(I0, 1X, I0)', query_id, reorder
end program inventory_reorder_case_demo
lookup table Parallel arrays hold item ids, current stock, and minimum stock.
bounded reorder `max(0, minimums(i) - stock(i))` prevents negative orders.
scan The loop checks each row and updates the result when the id matches.