program test_binding use f_mod implicit none double precision, dimension(:, :), allocatable :: data integer :: i, j integer :: m = 20, n = 10 allocate (data(m, n)) do i = 1, m do j = 1, n data(i, j) = n * (i-1) + (j-1) end do end do call f_func(data) end program test_binding