1program main
2  call test (reshape ((/ 'a', 'b', 'c', 'd' /), (/ 2, 2 /)))
3contains
4  subroutine test (a)
5    character (len = *), dimension (:, :) :: a
6
7    if (size (a, 1) .ne. 2) call abort
8    if (size (a, 2) .ne. 2) call abort
9    if (len (a) .ne. 1) call abort
10
11    if (a (1, 1) .ne. 'a') call abort
12    if (a (2, 1) .ne. 'b') call abort
13    if (a (1, 2) .ne. 'c') call abort
14    if (a (2, 2) .ne. 'd') call abort
15  end subroutine test
16end program main
17