我有一个Fortran类型,它有一个类型的条目 . 此类型具有可分配的整数数组:
type inner
integer, allocatable :: dyn_arr(:)
integer another_var
end type
type outer
type(inner) entry
type(inner) another_entry
end type
我分配数组,然后调用子程序 . 在子程序里面我想访问数组 .
type(outer) main_struct
allocate(main_struct%entry%dyn_arr(100))
call routi(main_struct)
我的代码段错误 . 当我使用调试器运行时,在调用之前一切都很好,当我进入子程序 routi
时,调试器说 dyn_arr
没有被分配 . 怎么可能?
2 回答
我创建了一个简短的程序来测试它并没有任何问题 . 你能发一个显示这个失败的简短程序吗?
这是我的代码在使用gfortran 4.5编译时工作正常:
我想在routi()中你有意图(out),不是吗?
来自here
永远不要使用意图(out) . 这是邪恶的 .