Ruby 言語で Array.new があるように、Fortran でも割付け配列という概念がある。
program dotproduct
implicit none
integer, allocatable :: u(:), v(:)
integer :: i, n = 4
integer dotprod
allocate (u(0:n-1), v(0:n-1))
do i = 0, n
u(i) = i - 1
v(i) = i + 1
end do
write(*,*) (u(i), i = 0, n-1)
write(*,*) (v(i), i = 0, n-1)
do i = 0, n - 1
dotprod = dotprod + u(i) * v(i)
end do
write(*,*) dotprod
deallocate(u,v)
end program dotproduct
宣言時に allocatable 属性をつけ、次元を実行文中で決定することができる。 次元を与えた直後に配列を allocate 文を用いて、配列の大きさを決める。 解除する必要があれば、deallocate 文を用いて、解除する。