Ruby 言語で method を定義したときのように、配列をそのまま受け渡すこともできる。これを
外部 subroutine で、形状引き継ぎ配列を使用する場合には、interface module を用意する必要がある。 当面は、内部 subroutine のみを考える。
module subpart
implicit none
contains
subroutine dummy_print2(e, lower)
integer, intent(in) :: lower
real(8), intent(in) :: e(lower:,lower:)
integer i, j, k
k = size(e(1,:))
do i = 0, k
write(*,'(100e12.4)') (e(i,j), j = 0, k)
end do
end subroutine dummy_print2
end module subpart
program assume
use subpart
implicit none
real(8), allocatable :: e(:,:)
integer :: n = 5
integer i, j
allocate (e(0:n-1,0:n-1))
do i = 0, n - 1
do j = 0, n - 1
if (j == i) then
e(i,j) = 1.0d0
else
e(i,j) = 0.0d0
end if
end do
end do
call dummy_print2(e,lbound(e,1))
end program assume