Report Generation
Table Row Report
Repeating Formatted Rows
A simple report table prints one formatted row per active entry.
Program
Play the program to include more rows in the table report.
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
ids ← [101, 102, 103]
8ids = [101, 102, 103]9scores = [7, 9, 8]values this step[101, 102, 103]idsscores ← [7, 9, 8]
8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 2values this step[7, 9, 8]scoresrow_count ← 2
9scores = [7, 9, 8]10row_count = 211do i = 1, row_countvalues this step2row_counti ← 1
10row_count = 211do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step1iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput101:7values this step101ids(1)7scores(1)i ← 2
10row_count = 211do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step2iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput102:9values this step102ids(2)9scores(2)print '(A, I0)', 'rows=', row_count
13 end do14 print '(A, I0)', 'rows=', row_count15end program table_row_report_demooutputrows=2values this step2row_count
ids ← [101, 102, 103]
8ids = [101, 102, 103]9scores = [7, 9, 8]values this step[101, 102, 103]idsscores ← [7, 9, 8]
8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 1values this step[7, 9, 8]scoresrow_count ← 1
9scores = [7, 9, 8]10row_count = 111do i = 1, row_countvalues this step1row_counti ← 1
10row_count = 111do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step1iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput101:7values this step101ids(1)7scores(1)print '(A, I0)', 'rows=', row_count
13 end do14 print '(A, I0)', 'rows=', row_count15end program table_row_report_demooutputrows=1values this step1row_count
ids ← [101, 102, 103]
8ids = [101, 102, 103]9scores = [7, 9, 8]values this step[101, 102, 103]idsscores ← [7, 9, 8]
8ids = [101, 102, 103]9scores = [7, 9, 8]10row_count = 3values this step[7, 9, 8]scoresrow_count ← 3
9scores = [7, 9, 8]10row_count = 311do i = 1, row_countvalues this step3row_counti ← 1
10row_count = 311do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step1iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput101:7values this step101ids(1)7scores(1)i ← 2
10row_count = 311do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step2iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput102:9values this step102ids(2)9scores(2)i ← 3
10row_count = 311do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)values this step3iprint '(I0, A, I0)', ids(i), ':', scores(i)
11do i = 1, row_count12 print '(I0, A, I0)', ids(i), ':', scores(i)13end dooutput103:8values this step103ids(3)8scores(3)print '(A, I0)', 'rows=', row_count
13 end do14 print '(A, I0)', 'rows=', row_count15end program table_row_report_demooutputrows=3values 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.