Operational Reliability Reports
Service Window Report
Classify Readiness
A reliability report can combine a failure count with a service-window duration before choosing a status label.
Program
Play the program to choose the failed check count and inspect the readiness report.
service_window_report.f90
Replay: real traced execution (multi-file project)
program service_window_report_demo
implicit none
integer :: failed_checks
integer :: allowed_failures
integer :: open_minutes
character(len=10) :: status
failed_checks = 1
allowed_failures = 1
open_minutes = 45
if (failed_checks <= allowed_failures .and. open_minutes >= 30) then
status = 'ready'
else
status = 'blocked'
end if
print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
end program service_window_report_demo
program service_window_report_demo
implicit none
integer :: failed_checks
integer :: allowed_failures
integer :: open_minutes
character(len=10) :: status
failed_checks = 0
allowed_failures = 1
open_minutes = 45
if (failed_checks <= allowed_failures .and. open_minutes >= 30) then
status = 'ready'
else
status = 'blocked'
end if
print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
end program service_window_report_demo
program service_window_report_demo
implicit none
integer :: failed_checks
integer :: allowed_failures
integer :: open_minutes
character(len=10) :: status
failed_checks = 3
allowed_failures = 1
open_minutes = 45
if (failed_checks <= allowed_failures .and. open_minutes >= 30) then
status = 'ready'
else
status = 'blocked'
end if
print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
end program service_window_report_demo
failed_checks ← 1
8failed_checks = 19allowed_failures = 1values this step1failed_checksallowed_failures ← 1
8failed_checks = 19allowed_failures = 110open_minutes = 45values this step1allowed_failuresopen_minutes ← 45
9allowed_failures = 110open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) thenvalues this step45open_minutesif (failed_checks <= allowed_failures .and. open_minutes >= 30) then
10open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) then12 status = 'ready'values this step1failed_checks1allowed_failures45open_minutesstatus ← ready
11if (failed_checks <= allowed_failures .and. open_minutes >= 30) then12 status = 'ready'13elsevalues this stepreadystatusprint '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
15 end if16 print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)17end program service_window_report_demooutput1 45 readyvalues this step1failed_checks45open_minutesreadystatus
failed_checks ← 0
8failed_checks = 09allowed_failures = 1values this step0failed_checksallowed_failures ← 1
8failed_checks = 09allowed_failures = 110open_minutes = 45values this step1allowed_failuresopen_minutes ← 45
9allowed_failures = 110open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) thenvalues this step45open_minutesif (failed_checks <= allowed_failures .and. open_minutes >= 30) then
10open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) then12 status = 'ready'values this step0failed_checks1allowed_failures45open_minutesstatus ← ready
11if (failed_checks <= allowed_failures .and. open_minutes >= 30) then12 status = 'ready'13elsevalues this stepreadystatusprint '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
15 end if16 print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)17end program service_window_report_demooutput0 45 readyvalues this step0failed_checks45open_minutesreadystatus
failed_checks ← 3
8failed_checks = 39allowed_failures = 1values this step3failed_checksallowed_failures ← 1
8failed_checks = 39allowed_failures = 110open_minutes = 45values this step1allowed_failuresopen_minutes ← 45
9allowed_failures = 110open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) thenvalues this step45open_minutesif (failed_checks <= allowed_failures .and. open_minutes >= 30) then
10open_minutes = 4511if (failed_checks <= allowed_failures .and. open_minutes >= 30) then12 status = 'ready'values this step3failed_checks1allowed_failures45open_minutesstatus ← blocked
13else14 status = 'blocked'15end ifvalues this stepblockedstatusprint '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)
15 end if16 print '(I0, 1X, I0, 1X, A)', failed_checks, open_minutes, trim(status)17end program service_window_report_demooutput3 45 blockedvalues this step3failed_checks45open_minutesblockedstatus
combined guard
The readiness decision checks both failure count and open service-window minutes.
status label
The character status stores the report outcome as ordinary program state.
report line
The final print emits the selected signal, window length, and status.