Case Studies
Inventory Reorder Case
Table Lookup
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.