Fortran · 789 bytes Raw Blame History
1 ! Audit #4 CRITICAL-3 — multi-dimensional slice prints now
2 ! lower as nested column-major loops directly, bypassing the
3 ! afs_create_section descriptor path that crashed on bare
4 ! stack arrays.
5 !
6 ! For a 3x3 column-major matrix:
7 ! m(1,1)=11 m(1,2)=12 m(1,3)=13
8 ! m(2,1)=21 m(2,2)=22 m(2,3)=23
9 ! m(3,1)=31 m(3,2)=32 m(3,3)=33
10 !
11 ! Iteration order is column-major per F2018 §6.5.3.3 — the
12 ! first subscript varies fastest. So `m(2:3, 1:2)` walks
13 ! (2,1), (3,1), (2,2), (3,2) → 21, 31, 22, 32.
14 !
15 ! CHECK: 11 21 31
16 ! CHECK: 11 12 13
17 ! CHECK: 21 31 22 32
18 program audit4_c3_multidim_slice_print
19 integer :: m(3,3)
20 integer :: i, j
21 do j = 1, 3
22 do i = 1, 3
23 m(i, j) = i * 10 + j
24 end do
25 end do
26 print *, m(:, 1)
27 print *, m(1, :)
28 print *, m(2:3, 1:2)
29 end program
30