A simple report table prints one formatted row per active entry.

Program

Play the program to include more rows in the table report.

row_count
table_row_report.f90
Replay: real traced execution (multi-file project)
program table_row_report_demo
    implicit none
    integer :: ids(3)
    integer :: scores(3)
    integer :: row_count
    integer :: i

    ids = [101, 102, 103]
    scores = [7, 9, 8]
    row_count = 2
    do i = 1, row_count
        print '(I0, A, I0)', ids(i), ':', scores(i)
    end do
    print '(A, I0)', 'rows=', row_count
end program table_row_report_demo
program table_row_report_demo
    implicit none
    integer :: ids(3)
    integer :: scores(3)
    integer :: row_count
    integer :: i

    ids = [101, 102, 103]
    scores = [7, 9, 8]
    row_count = 1
    do i = 1, row_count
        print '(I0, A, I0)', ids(i), ':', scores(i)
    end do
    print '(A, I0)', 'rows=', row_count
end program table_row_report_demo
program table_row_report_demo
    implicit none
    integer :: ids(3)
    integer :: scores(3)
    integer :: row_count
    integer :: i

    ids = [101, 102, 103]
    scores = [7, 9, 8]
    row_count = 3
    do i = 1, row_count
        print '(I0, A, I0)', ids(i), ':', scores(i)
    end do
    print '(A, I0)', 'rows=', row_count
end program table_row_report_demo
  1. ids ← [101, 102, 103]

    8ids = [101, 102, 103]9scores = [7, 9, 8]
    values this step[101, 102, 103]ids
  2. scores ← [7, 9, 8]

    8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 2
    values this step[7, 9, 8]scores
  3. row_count ← 2

    9scores = [7, 9, 8]10row_count = 211do i = 1, row_count
    values this step2row_count
  4. i ← 1

    10row_count = 211do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step1i
  5. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output101:7
    values this step101ids(1)7scores(1)
  6. i ← 2

    10row_count = 211do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step2i
  7. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output102:9
    values this step102ids(2)9scores(2)
  8. print '(A, I0)', 'rows=', row_count

    13    end do14    print '(A, I0)', 'rows=', row_count15end program table_row_report_demo
    outputrows=2
    values this step2row_count
  1. ids ← [101, 102, 103]

    8ids = [101, 102, 103]9scores = [7, 9, 8]
    values this step[101, 102, 103]ids
  2. scores ← [7, 9, 8]

    8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 1
    values this step[7, 9, 8]scores
  3. row_count ← 1

    9scores = [7, 9, 8]10row_count = 111do i = 1, row_count
    values this step1row_count
  4. i ← 1

    10row_count = 111do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step1i
  5. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output101:7
    values this step101ids(1)7scores(1)
  6. print '(A, I0)', 'rows=', row_count

    13    end do14    print '(A, I0)', 'rows=', row_count15end program table_row_report_demo
    outputrows=1
    values this step1row_count
  1. ids ← [101, 102, 103]

    8ids = [101, 102, 103]9scores = [7, 9, 8]
    values this step[101, 102, 103]ids
  2. scores ← [7, 9, 8]

    8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 3
    values this step[7, 9, 8]scores
  3. row_count ← 3

    9scores = [7, 9, 8]10row_count = 311do i = 1, row_count
    values this step3row_count
  4. i ← 1

    10row_count = 311do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step1i
  5. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output101:7
    values this step101ids(1)7scores(1)
  6. i ← 2

    10row_count = 311do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step2i
  7. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output102:9
    values this step102ids(2)9scores(2)
  8. i ← 3

    10row_count = 311do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)
    values this step3i
  9. print '(I0, A, I0)', ids(i), ':', scores(i)

    11do i = 1, row_count12    print '(I0, A, I0)', ids(i), ':', scores(i)13end do
    output103:8
    values this step103ids(3)8scores(3)
  10. print '(A, I0)', 'rows=', row_count

    13    end do14    print '(A, I0)', 'rows=', row_count15end program table_row_report_demo
    outputrows=3
    values this step3row_count
row loop The loop prints one report row for each active record.
row format `I0, A, I0` prints an id, a separator, and a score.
footer A final line summarizes how many rows were printed.