Fortran Coder

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

[讨论] FUNCTION函数调用

[复制链接]

36

帖子

17

主题

0

精华

专家

F 币
410 元
贡献
399 点
跳转到指定楼层
楼主
发表于 2020-1-2 12:00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 石子 于 2020-1-2 21:44 编辑

编写了一个function函数,在其他计算式中直接代进去计算得到的是错误的结果,但是把function函数先赋值给一个数,再进行计算就正确了,不明白为什么是这样?
代码如下:
    HF(I)=373.79*EXP(0.0042*T_WATER(0.01*I))
   T_WATER(Z)是一个求温度的函数,通过这个语句无法得到正确的HF(I),改为下面的语句后就正确了

    Z=0.01*I
    FUN=T_WATER(Z)
    HF(I)=373.79*EXP(0.0042*FUN)

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩
欢迎交流

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

沙发
发表于 2020-1-2 16:00:53 | 只看该作者
把这段程序自己编到一个程序中执行看看
两种方法编到一起

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2020-1-2 16:47:56 | 只看该作者
注意 Z ,T_WATER ,和 FUN 的定义类型

36

帖子

17

主题

0

精华

专家

F 币
410 元
贡献
399 点
地板
 楼主| 发表于 2020-1-2 21:48:07 | 只看该作者
fcode 发表于 2020-1-2 16:47
注意 Z ,T_WATER ,和 FUN 的定义类型

一针见血!确实是类型的问题,T_WATER里面的实参要求是双精度,如果里面是0.01乘以一个整数的话得到的是实数,就出现问题了。谢谢您的帮助。
欢迎交流

36

帖子

17

主题

0

精华

专家

F 币
410 元
贡献
399 点
5#
 楼主| 发表于 2020-1-2 21:49:34 | 只看该作者
necrohan 发表于 2020-1-2 16:00
把这段程序自己编到一个程序中执行看看
两种方法编到一起

谢谢您的建议,问题已经解决了,原因是function函数的实参要求双精度,如果是0.01*integer的话,认为是实数,所以有问题。
欢迎交流
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-23 05:53

Powered by Tencent X3.4

© 2013-2024 Tencent

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