Fortran Coder

标题: 请问为什么这个子程序的值没有输出 [打印本页]

作者: 盛世青衫    时间: 2023-12-20 10:18
标题: 请问为什么这个子程序的值没有输出
本帖最后由 盛世青衫 于 2023-12-20 10:20 编辑

图三中,按照判断关系会进入第45行的这个子程序,通过wirte输出看起来子程序确实进入了,并且这个子程序也输出了一个qulv_i_j
但是从结果图看这个值变成了另外一个值这是什么原因呢为什么没有输出呢?
图一为结果图,第一行表示子程序输出的值,应该是正确的,第二行表示主程序结束判断输出的值是错误的,请问有大哥知道原因吗
谢谢


97910632ae1b91c599ff0b7d9adf2c0.png (14.08 KB, 下载次数: 85)

97910632ae1b91c599ff0b7d9adf2c0.png

2.png (68.49 KB, 下载次数: 79)

2.png

1.png (93.67 KB, 下载次数: 83)

主程序

主程序

作者: 楚香饭    时间: 2023-12-20 14:18
主程序里面的 qulv_i_j 是主程序里的。子程序里的 qulv_i_j 是子程序里的。
主程序和子程序的作用域是独立的。

就像:你家的钥匙是你家的钥匙,我家的钥匙是我家的钥匙。你家的钥匙不是我家的钥匙,我家的钥匙也不是你家的钥匙。
作者: 盛世青衫    时间: 2023-12-20 14:28
本帖最后由 盛世青衫 于 2023-12-20 14:36 编辑
楚香饭 发表于 2023-12-20 14:18
主程序里面的 qulv_i_j 是主程序里的。子程序里的 qulv_i_j 是子程序里的。
主程序和子程序的作用域是独立 ...

请问我如何能让他输入到主程序里呀 ,我还想让主程序继续使用这个值进行别的运算

作者: 楚香饭    时间: 2023-12-20 18:30
通过参数传递,或者通过 module 模块
作者: 盛世青衫    时间: 2023-12-21 14:25
楚香饭 发表于 2023-12-20 18:30
通过参数传递,或者通过 module 模块

感谢,我加了common,解决了这个问题。再次感谢
作者: 楚香饭    时间: 2023-12-21 15:07
盛世青衫 发表于 2023-12-21 14:25
感谢,我加了common,解决了这个问题。再次感谢

给你提供了好的方案(module或者参数传递),你偏偏自己选择了最差的方案(common)。
作者: 盛世青衫    时间: 2023-12-22 09:12
楚香饭 发表于 2023-12-21 15:07
给你提供了好的方案(module或者参数传递),你偏偏自己选择了最差的方案(common)。 ...

您好 ,感谢回复, 我刚刚接触不太懂,请问参数传递和我这个common有什么区别嘛,至于模块我不太懂如何只在我的if下调用,我看教程都是在一开始调用模块,如何像子程序一样在需要的地方调用呀,叨扰了,希望得到您的回复
作者: 楚香饭    时间: 2023-12-22 10:49
http://common.w.fcode.cn/  关于common的缺陷。
http://v.fcode.cn/video-module.html   关于 module 的视频教程
作者: 盛世青衫    时间: 2023-12-25 09:57
楚香饭 发表于 2023-12-22 10:49
http://common.w.fcode.cn/  关于common的缺陷。
http://v.fcode.cn/video-module.html   关于 module 的视 ...

感谢大佬 感谢




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