Fortran Coder

查看: 136|回复: 13

[子程序] 请教一下Fortran程序中子程序参数为何发生变化

[复制链接]

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
发表于 2018-11-20 19:52:23 | 显示全部楼层 |阅读模式
GREASELINETHERMEHL.f90 (15.61 KB, 下载次数: 7)
回复

使用道具 举报

613

帖子

0

主题

0

精华

大师

F 币
592 元
贡献
367 点

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

QQ
发表于 2018-11-21 08:20:20 | 显示全部楼层
天哪,这是基础知识呀。子程序局部变量,在子程序返回之后,就被回收了。
下一次调用子程序,局部变量成为“未初始化状态”

如果你想保留上一次的值,可以定义其具有 save 属性:
real , save :: B1

此外,变量都不定义,是一个不好的习惯。

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
 楼主| 发表于 2018-11-21 09:58:00 | 显示全部楼层
vvt 发表于 2018-11-21 08:20
天哪,这是基础知识呀。子程序局部变量,在子程序返回之后,就被回收了。
下一次调用子程序,局部变量成为 ...

刚刚接触Fortran不就 好多基础知识还没有完全掌握 谢谢您啦
但是我加上save以后,发现nan的现象并没有改善 所以可能我之前的判断是错的 请您能不能帮我看一下这个程序的问题出在哪里了 十分感谢!

613

帖子

0

主题

0

精华

大师

F 币
592 元
贡献
367 点

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

QQ
发表于 2018-11-21 10:53:34 | 显示全部楼层
加上 save 以后,是否 B1 的值就正常了?
NaN 可能出在别处,继续调试就好了。

没输入文件没法判断。而且我也不知道你的程序正常逻辑应该是怎样的,所以这种很难帮助你。

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
 楼主| 发表于 2018-11-21 19:09:17 | 显示全部楼层
vvt 发表于 2018-11-21 10:53
加上 save 以后,是否 B1 的值就正常了?
NaN 可能出在别处,继续调试就好了。

我是真的不知道该怎么继续调试了  可能还没有掌握单步调试的要领 请您赐教,应该怎么继续找问题的所在
另外您说的输入文件是什么 我运行这个程序里面的参数已经设定好了 这是程序最后是想得出在考虑温度的情况下,油膜膜厚和压力随坐标的变化
请您帮忙 指导吧 十分感谢

613

帖子

0

主题

0

精华

大师

F 币
592 元
贡献
367 点

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

QQ
发表于 2018-11-21 19:53:50 | 显示全部楼层
就是你运行程序以后该输入什么?

READ(*,'(A)')S
READ(*,*)W,US,FF
READ(*,*)NZ,CU

这些

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
 楼主| 发表于 2018-11-21 20:19:21 | 显示全部楼层
vvt 发表于 2018-11-21 19:53
就是你运行程序以后该输入什么?

READ(*,'(A)')S

这个不需要输入 在上一步'Show the example or not (Y or N) 这里输入y就可以了

613

帖子

0

主题

0

精华

大师

F 币
592 元
贡献
367 点

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

QQ
发表于 2018-11-21 21:49:51 | 显示全部楼层
这程序你也别改了,错误太多太多了。各种变量都需要 save
比如
UCAL 函数里的 A1 A2 A3
THERM 函数里的 T
TCAL 函数里的 A1 A2 A3 A4 A5 A6
等等

如果你使用的 IVF,你可以在工程属性里这样设置:
QQ截图20181121214745.png

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
 楼主| 发表于 2018-11-22 10:28:44 | 显示全部楼层
vvt 发表于 2018-11-21 21:49
这程序你也别改了,错误太多太多了。各种变量都需要 save
比如
UCAL 函数里的 A1 A2 A3

啊 这些都要save啊  可是我用的是codeblocks 没找到在哪里设置所有变量save
所以您调试以后就是这个变量save的问题吗

11

帖子

2

主题

0

精华

入门

F 币
83 元
贡献
38 点
 楼主| 发表于 2018-11-22 10:33:47 | 显示全部楼层
vvt 发表于 2018-11-21 21:49
这程序你也别改了,错误太多太多了。各种变量都需要 save
比如
UCAL 函数里的 A1 A2 A3

可否跟您加一下qq或者微信之类的
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2018-12-10 16:51

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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