Fortran Coder

查看: 6599|回复: 4
打印 上一主题 下一主题

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

[复制链接]

5

帖子

2

主题

0

精华

入门

F 币
37 元
贡献
18 点
跳转到指定楼层
楼主
发表于 2019-3-12 11:07:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在编写一个二维欧拉求解器,使用的是VS2017和IVF。

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

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

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

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

error.png (34.49 KB, 下载次数: 249)

报错

报错

allocate.png (30.41 KB, 下载次数: 257)

子程序initialize

子程序initialize

module.png (15.82 KB, 下载次数: 250)

主程序module

主程序module
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2019-3-12 17:33:34 | 只看该作者
多次对同一动态数组进行分配。你可以 分配-释放-分配-释放,但不能 分配-分配-

5

帖子

2

主题

0

精华

入门

F 币
37 元
贡献
18 点
板凳
 楼主| 发表于 2019-3-12 19:17:05 | 只看该作者
li913 发表于 2019-3-12 17:33
多次对同一动态数组进行分配。你可以 分配-释放-分配-释放,但不能 分配-分配- ...

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

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

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

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

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

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

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

5

帖子

2

主题

0

精华

入门

F 币
37 元
贡献
18 点
5#
 楼主| 发表于 2019-3-13 14:19:48 | 只看该作者
vvt 发表于 2019-3-13 07:08
这种问题,归根结底,是“程序的执行流程超出了你的预期”
往往,你认为是“第一次”,但由于某些意料之外 ...

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

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 03:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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