wxy 发表于 2020-10-14 18:17:00

关于type 动态数组传递

本帖最后由 wxy 于 2020-10-14 20:56 编辑

我在type中定义了一个动态数组用于传递数组,用gfortran(linux)编译,数组传递正常,但是用ifort编译动态数组传递出来是空的,其他参数传递正常(图二是数组传入,图三是调用的地方),不知道应该怎么改写

青衣巷 发表于 2020-10-14 22:10:12

Allocate( da%obs_date(row) )
这样就行了。不要重新定义一个 integer , allocatable :: obs_date(:)
没什么意义嘛。

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

wxy 发表于 2020-10-14 22:38:55

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

好的 谢谢 我试一下

wxy 发表于 2020-10-15 09:49:30

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

可以了 非常感谢:-lol

mapoet 发表于 2020-10-16 09:42:01

一般可以直接申请空间给对象子成员,不过肯定要比c++略麻烦。

fcode 发表于 2020-10-17 09:40:28

mapoet 发表于 2020-10-16 09:42
一般可以直接申请空间给对象子成员,不过肯定要比c++略麻烦。

哪儿比C++麻烦了?

mapoet 发表于 2023-11-13 08:58:01

fcode 发表于 2020-10-17 09:40
哪儿比C++麻烦了?

:-lol没有析构函数,可以自动释放内存。

风平老涡 发表于 2023-11-13 10:50:20

mapoet 发表于 2023-11-13 08:58
没有析构函数,可以自动释放内存。

可以用“final subroutine", 有同样作用。
页: [1]
查看完整版本: 关于type 动态数组传递