A diagnostic report can combine failure and staleness signals into a compact health label without reading live host state.

Program

Play the program to choose failed checks and inspect the diagnostic signal.

failed_checks
diagnostic_signal_report.f90
Replay: real traced execution (multi-file project)
program diagnostic_signal_report_demo
    implicit none
    integer :: failed_checks
    integer :: stale_minutes
    character(len=8) :: signal

    failed_checks = 1
    stale_minutes = 12
    if (failed_checks >= 4) then
        signal = 'critical'
    else if (failed_checks > 0 .or. stale_minutes > 20) then
        signal = 'watch'
    else
        signal = 'clean'
    end if
    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)
end program diagnostic_signal_report_demo
program diagnostic_signal_report_demo
    implicit none
    integer :: failed_checks
    integer :: stale_minutes
    character(len=8) :: signal

    failed_checks = 0
    stale_minutes = 12
    if (failed_checks >= 4) then
        signal = 'critical'
    else if (failed_checks > 0 .or. stale_minutes > 20) then
        signal = 'watch'
    else
        signal = 'clean'
    end if
    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)
end program diagnostic_signal_report_demo
program diagnostic_signal_report_demo
    implicit none
    integer :: failed_checks
    integer :: stale_minutes
    character(len=8) :: signal

    failed_checks = 4
    stale_minutes = 12
    if (failed_checks >= 4) then
        signal = 'critical'
    else if (failed_checks > 0 .or. stale_minutes > 20) then
        signal = 'watch'
    else
        signal = 'clean'
    end if
    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)
end program diagnostic_signal_report_demo
  1. failed_checks ← 1

    7failed_checks = 18stale_minutes = 12
    values this step1failed_checks
  2. stale_minutes ← 12

    7failed_checks = 18stale_minutes = 129if (failed_checks >= 4) then
    values this step12stale_minutes
  3. if (failed_checks >= 4) then

    8stale_minutes = 129if (failed_checks >= 4) then10    signal = 'critical'
    values this step1failed_checks
  4. else if (failed_checks > 0 .or. stale_minutes > 20) then

    10    signal = 'critical'11else if (failed_checks > 0 .or. stale_minutes > 20) then12    signal = 'watch'
    values this step1failed_checks12stale_minutes
  5. signal ← watch

    11else if (failed_checks > 0 .or. stale_minutes > 20) then12    signal = 'watch'13else
    values this stepwatchsignal
  6. print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=',…

    15    end if16    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)17end program diagnostic_signal_report_demo
    outputfailed=1 stale=12 watch
    values this step1failed_checks12stale_minuteswatchsignal
  1. failed_checks ← 0

    7failed_checks = 08stale_minutes = 12
    values this step0failed_checks
  2. stale_minutes ← 12

    7failed_checks = 08stale_minutes = 129if (failed_checks >= 4) then
    values this step12stale_minutes
  3. if (failed_checks >= 4) then

    8stale_minutes = 129if (failed_checks >= 4) then10    signal = 'critical'
    values this step0failed_checks
  4. else if (failed_checks > 0 .or. stale_minutes > 20) then

    10    signal = 'critical'11else if (failed_checks > 0 .or. stale_minutes > 20) then12    signal = 'watch'
    values this step0failed_checks12stale_minutes
  5. signal ← clean

    13else14    signal = 'clean'15end if
    values this stepcleansignal
  6. print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=',…

    15    end if16    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)17end program diagnostic_signal_report_demo
    outputfailed=0 stale=12 clean
    values this step0failed_checks12stale_minutescleansignal
  1. failed_checks ← 4

    7failed_checks = 48stale_minutes = 12
    values this step4failed_checks
  2. stale_minutes ← 12

    7failed_checks = 48stale_minutes = 129if (failed_checks >= 4) then
    values this step12stale_minutes
  3. if (failed_checks >= 4) then

    8stale_minutes = 129if (failed_checks >= 4) then10    signal = 'critical'
    values this step4failed_checks
  4. signal ← critical

    9if (failed_checks >= 4) then10    signal = 'critical'11else if (failed_checks > 0 .or. stale_minutes > 20) then
    values this stepcriticalsignal
  5. print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=',…

    15    end if16    print '(A, I0, 1X, A, I0, 1X, A)', 'failed=', failed_checks, 'stale=', stale_minutes, trim(signal)17end program diagnostic_signal_report_demo
    outputfailed=4 stale=12 critical
    values this step4failed_checks12stale_minutescriticalsignal
diagnostic signal The `signal` value stores the derived health label as ordinary program state.
combined condition The report checks both failure count and stale diagnostic age before printing.
static report The final row keeps raw diagnostic values beside the selected health label.