Table-Driven Calculations
Rate Lookup Table
Indexed Choice
A small table can hold rates while an index chooses which row is active.
Program
Play the program to choose a different rate row and recompute the charge.
rate_lookup_table.f90
program rate_lookup_table_demo
implicit none
integer :: rate_cents(3)
integer :: row
integer :: units
integer :: charge_cents
rate_cents = [12, 15, 20]
row =
units = 8
charge_cents = units * rate_cents(row)
print '(I0, 1X, I0)', row, charge_cents
end program rate_lookup_table_demo
program rate_lookup_table_demo
implicit none
integer :: rate_cents(3)
integer :: row
integer :: units
integer :: charge_cents
rate_cents = [12, 15, 20]
row =
units = 8
charge_cents = units * rate_cents(row)
print '(I0, 1X, I0)', row, charge_cents
end program rate_lookup_table_demo
program rate_lookup_table_demo
implicit none
integer :: rate_cents(3)
integer :: row
integer :: units
integer :: charge_cents
rate_cents = [12, 15, 20]
row =
units = 8
charge_cents = units * rate_cents(row)
print '(I0, 1X, I0)', row, charge_cents
end program rate_lookup_table_demo
lookup table
A table turns row data into values that code can reuse.
row index
`rate_cents(row)` selects one rate from the table.
derived value
`charge_cents` is calculated from the selected table row.