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
program service_window_report_demo
    implicit none
    integer :: failed_checks
    integer :: allowed_failures
    integer :: open_minutes
    character(len=10) :: status

    failed_checks = 
    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 = 
    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 = 
    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
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.