program strarray_3
  character(len=5), dimension(2) :: c
  
  c(1) = "Hello"
  c(2) = "World"

  call foo1(c)
  call foo2(c, 2)
  call foo3(c, 5)
  call foo4(c, 5, 2)
  call foo5(c(2:1:-1))
contains
subroutine foo1(a)
  implicit none
  character(len=5), dimension(2)  :: a

  if ((a(1) .ne. "Hello") .or. (a(2) .ne. "World")) call abort
end subroutine

subroutine foo2(a, m)
  implicit none
  integer  m
  character(len=5), dimension(m)  :: a

  if ((a(1) .ne. "Hello") .or. (a(2) .ne. "World")) call abort
end subroutine

subroutine foo3(a, n)
  implicit none
  integer n
  character(len=n), dimension(:)  :: a

  if ((a(1) .ne. "Hello") .or. (a(2) .ne. "World")) call abort
end subroutine

subroutine foo4(a, n, m)
  implicit none
  integer n, m
  character(len=n), dimension(m)  :: a

  if ((a(1) .ne. "Hello") .or. (a(2) .ne. "World")) call abort
end subroutine

subroutine foo5(a)
  implicit none
  character(len=2), dimension(5)  :: a

  if ((a(1) .ne. "Wo") .or. (a(3) .ne. "dH") .or. (a(5) .ne. "lo")) call abort
end subroutine
end program
