Time Step Models
Threshold Time Steps
Exit Condition
A step loop can leave early when a modeled state reaches a threshold.
Program
Play the program to change the inflow and see when the threshold is reached.
threshold_time_steps.f90
program threshold_time_steps_demo
implicit none
integer :: step
integer :: max_steps
real :: level
real :: inflow
real :: limit
max_steps = 5
level = 0.0
inflow =
limit = 10.0
do step = 1, max_steps
level = level + inflow
if (level >= limit) exit
end do
print '(I0, 1X, F0.1)', step, level
end program threshold_time_steps_demo
program threshold_time_steps_demo
implicit none
integer :: step
integer :: max_steps
real :: level
real :: inflow
real :: limit
max_steps = 5
level = 0.0
inflow =
limit = 10.0
do step = 1, max_steps
level = level + inflow
if (level >= limit) exit
end do
print '(I0, 1X, F0.1)', step, level
end program threshold_time_steps_demo
program threshold_time_steps_demo
implicit none
integer :: step
integer :: max_steps
real :: level
real :: inflow
real :: limit
max_steps = 5
level = 0.0
inflow =
limit = 10.0
do step = 1, max_steps
level = level + inflow
if (level >= limit) exit
end do
print '(I0, 1X, F0.1)', step, level
end program threshold_time_steps_demo
exit
`exit` leaves the nearest loop immediately.
threshold
`level >= limit` decides whether enough state has accumulated.
maximum steps
`max_steps` bounds the loop even if the threshold is not reached early.