構造体定義も module で持っていける

subevo() 内は old → rho →(計算)→ rho_n → new っぽく見えるけど
サブルーチン内部の配列は無駄じゃないか?

module my_struct
type arg
real(8) :: rho(0:n),vel(0:n),ene(0:n)
end type arg
end module my_struct
program main
use my_struct
implicit none
type(arg) :: old,new
!- 中略 -
end program
subroutine subevo(old,new)
use my_struct
implicit none
type(arg),intent(in) :: old
type(arg),intent(out) :: new
!- 中略 -
end subroutine subevo