Fortran では、割り当てられていない配列の状態が であり、属性.not.allocated
で宣言されている場合、割り当て可能な配列の状態が呼び出し間で保持されると想定しても安全ですか? save
言い換えれば、マイナーな出力フォーマットの違いを除けば、次のプログラムが常に出力されると想定しても安全です。
First time here
Been here before
テストプログラム:
program main
call sub()
call sub()
end program main
subroutine sub()
real,save,allocatable,dimension(:) :: a
if(.not. allocated(a))then
print*,"First time here"
allocate(a(10))
else
print*,"Been here before"
endif
end subroutine sub
主に、ポインターのデフォルトの関連付けが.not.associated