fortran中调用函数返回值问题

haiyang_zhang 2010-12-14 10:32:29
在fortran中调用一个有返回值的子函数,可以这样调用吗:
X1=add(a,b)
real function add(a,b)
add=a+b
return
end
...全文
1154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnmhx 2011-02-19
  • 打赏
  • 举报
回复
可能原因是形参和实参的数据传输有问题。
主程序里的实参和函数子程序的形参的缺省定义类型不匹配。
建议都使用:IMPLICIT NONE
顺便说一下,在这里的情形里,return是不必要的。
yiyizq0260 2010-12-14
  • 打赏
  • 举报
回复
调用这个函数,首先X1要定义为real类型;
其次:function中的return 语句貌似不对。
应该 return add.

这样,x1=add(ab); 就是正确的了。
xiao19910102 2010-12-14
  • 打赏
  • 举报
回复
看上去没问题啊~
haiyang_zhang 2010-12-14
  • 打赏
  • 举报
回复
我是这样调用的,但是返回值不对啊,在real function add(a,b)里面计算的add值为1.467,传到X1就变成一个很大的值了,不知道是哪里有问题?X1要怎么定义一下?
cnmhx 2010-12-14
  • 打赏
  • 举报
回复
完全没有问题!
哪些默认属性都满足。

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧