Fortran Coder

标题: 关于type 动态数组传递 [打印本页]

作者: wxy    时间: 2020-10-14 18:17
标题: 关于type 动态数组传递
本帖最后由 wxy 于 2020-10-14 20:56 编辑

我在type中定义了一个动态数组用于传递数组,用gfortran(linux)编译,数组传递正常,但是用ifort编译动态数组传递出来是空的,其他参数传递正常(图二是数组传入,图三是调用的地方),不知道应该怎么改写
作者: 青衣巷    时间: 2020-10-14 22:10
Allocate( da%obs_date(row) )
这样就行了。不要重新定义一个 integer , allocatable :: obs_date(:)
没什么意义嘛。

或者,你需要用指针?
integer , pointer :: obs_date(:)
obs_date => da%obs_date
??


作者: wxy    时间: 2020-10-14 22:38
青衣巷 发表于 2020-10-14 22:10
Allocate( da%obs_date(row) )
这样就行了。不要重新定义一个 integer , allocatable :: obs_date(:)
没什 ...

好的 谢谢 我试一下
作者: wxy    时间: 2020-10-15 09:49
青衣巷 发表于 2020-10-14 22:10
Allocate( da%obs_date(row) )
这样就行了。不要重新定义一个 integer , allocatable :: obs_date(:)
没什 ...

可以了 非常感谢
作者: mapoet    时间: 2020-10-16 09:42
一般可以直接申请空间给对象子成员,不过肯定要比c++略麻烦。
作者: fcode    时间: 2020-10-17 09:40
mapoet 发表于 2020-10-16 09:42
一般可以直接申请空间给对象子成员,不过肯定要比c++略麻烦。

哪儿比C++麻烦了?
作者: mapoet    时间: 2023-11-13 08:58
fcode 发表于 2020-10-17 09:40
哪儿比C++麻烦了?

没有析构函数,可以自动释放内存。
作者: 风平老涡    时间: 2023-11-13 10:50
mapoet 发表于 2023-11-13 08:58
没有析构函数,可以自动释放内存。

可以用“final subroutine", 有同样作用。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2