Fortran Coder

查看: 64|回复: 4

[求助] 关于module里面动态数组的问题

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
10 点
发表于 2019-3-12 11:07:20 | 显示全部楼层 |阅读模式
在编写一个二维欧拉求解器,使用的是VS2017和IVF。

主程序开头使用module,里面将如下变量声明为动态数组。

然后读取网格文件,得到单元数为 ncells

然后在子程序initialize 里面,给动态数组分配时候就出现了问题,编译之后显示的错误如下

请问这是什么原因,纯粹自学,在书里面也没有讲到module 和 动态数组 搭配使用的注意事项

报错

报错

子程序initialize

子程序initialize

主程序module

主程序module
回复

使用道具 举报

317

帖子

1

主题

0

精华

宗师

F 币
1725 元
贡献
1144 点
发表于 2019-3-12 17:33:34 | 显示全部楼层
多次对同一动态数组进行分配。你可以 分配-释放-分配-释放,但不能 分配-分配-

3

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
10 点
 楼主| 发表于 2019-3-12 19:17:05 | 显示全部楼层
li913 发表于 2019-3-12 17:33
多次对同一动态数组进行分配。你可以 分配-释放-分配-释放,但不能 分配-分配- ...

但是我的整个程序里面,这是第一次分配数组啊,在这之前没有使用过allocate的命令,为什么会对同一数组多次分配呢

638

帖子

0

主题

0

精华

大师

F 币
386 元
贡献
240 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2019-3-13 07:08:23 | 显示全部楼层
本帖最后由 vvt 于 2019-3-13 07:10 编辑
513981387 发表于 2019-3-12 19:17
但是我的整个程序里面,这是第一次分配数组啊,在这之前没有使用过allocate的命令,为什么会对同一数组多 ...

这种问题,归根结底,是“程序的执行流程超出了你的预期”
往往,你认为是“第一次”,但由于某些意料之外的因素,导致“你认为的并不是你认为的”

你可以在所有分配语句上下断点,然后跟踪调试一下。看看是否“真的”是第一次。

别人没法代劳,毕竟,我们只有看到很小一部分源代码。
如果你自己排查有困难,代码又不涉密。可以上传全部代码,如果有输入文件,屏幕输入,也一并上传说明。

3

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
10 点
 楼主| 发表于 2019-3-13 14:19:48 | 显示全部楼层
vvt 发表于 2019-3-13 07:08
这种问题,归根结底,是“程序的执行流程超出了你的预期”
往往,你认为是“第一次”,但由于某些意料之外 ...

问题找到了,谢谢,确实是之前有一个子程序包含了数组分配的命令,不过因为不是自己写的子程序所以忽略了,感谢!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-3-25 08:13

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表