1

Fortran では、配列代入で割り当てられていない割付け配列を使用すると、実行時エラーが発生することが予想されます。しかし、割り当て中に割り当て可能な配列が割り当てられたことがわかりました。これは危険な設計のようです。誰かがこのデザインの理由を説明できますか? コード例は次のとおりです。

module yj_mod
 real,dimension(:,:),allocatable :: den_i_right
end module yj_mod

program main
  call p()
end program main

subroutine p()
  use yj_mod,only : den_i_right
  implicit none
  real :: a(3,4)
  a=3.0
  den_i_right=a
write(*,*) size(den_i_right,1), size(den_i_right,2)
end subroutine p

上記のコードを gfortran でコンパイルしました。コードを実行するden_i_rightと、同じ形状の配列になることが示されますa

4

1 に答える 1