Small Scientific Programs
Reservoir Balance
Combine Terms
Small scientific programs often combine starting state, inputs, outputs, and losses into one balance result.
Program
Play the program to choose the loss term and see the balance status update.
reservoir_balance.f90
program reservoir_balance_demo
implicit none
integer :: start_level
integer :: inflow
integer :: outflow
integer :: loss
integer :: final_level
character(len=6) :: status
start_level = 20
inflow = 8
outflow = 5
loss =
final_level = start_level + inflow - outflow - loss
if (final_level >= 20) then
status = 'stable'
else
status = 'low'
end if
print '(A, 1X, I0)', trim(status), final_level
end program reservoir_balance_demo
program reservoir_balance_demo
implicit none
integer :: start_level
integer :: inflow
integer :: outflow
integer :: loss
integer :: final_level
character(len=6) :: status
start_level = 20
inflow = 8
outflow = 5
loss =
final_level = start_level + inflow - outflow - loss
if (final_level >= 20) then
status = 'stable'
else
status = 'low'
end if
print '(A, 1X, I0)', trim(status), final_level
end program reservoir_balance_demo
program reservoir_balance_demo
implicit none
integer :: start_level
integer :: inflow
integer :: outflow
integer :: loss
integer :: final_level
character(len=6) :: status
start_level = 20
inflow = 8
outflow = 5
loss =
final_level = start_level + inflow - outflow - loss
if (final_level >= 20) then
status = 'stable'
else
status = 'low'
end if
print '(A, 1X, I0)', trim(status), final_level
end program reservoir_balance_demo
balance equation
`start_level + inflow - outflow - loss` combines the model terms.
status branch
The final level drives a compact status label.
small program
The example combines initialization, calculation, branch, and report.