I am trying to pass an array of unspecified size to a subroutine like so
PROGRAM GOL
IMPLICIT NONE
INTEGER, PARAMETER :: size_x = 16, size_y = 16
LOGICAL, DIMENSION(1:size_x,1:size_y) :: universe
universe(:,:) = .FALSE.
CALL COUNT_NEIGHBOURS(universe, 1, 1)
END PROGRAM GOL
SUBROUTINE COUNT_NEIGHBOURS (universe, x, y)
LOGICAL, DIMENSION(:,:) :: universe
INTEGER :: x,y
!test
universe(x,y) = .TRUE.
RETURN
END SUBROUTINE COUNT_NEIGHBOURS
However I get the error from gfortran
CALL COUNT_NEIGHBOURS(universe, 1, 1)
1
Error: Procedure 'count_neighbours' at (1) with assumed-shape dummy argument 'universe' must have an explicit interface
What is the correct way to do this?