Fortran Coder

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

[子程序] call的用法

[复制链接]

8

帖子

2

主题

0

精华

入门

F 币
55 元
贡献
26 点
跳转到指定楼层
楼主
发表于 2022-4-10 17:24:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
      subroutine muhard(peeq,hard,yieldNew,para1,para2,para3)
C        
        INCLUDE 'VABA_PARAM.INC'
        double precision hard,peeq,yieldNew
C        
        yieldNew=para1-para2*exp(-para3*peeq)
        hard=para2*para3*exp(-para3*peeq) 
        return
      end

求问大佬们,我写了一个子程序,我调用后返回得到的是hard和yieldOld吗,还是得到hard和yieldNew呢
[Fortran] 纯文本查看 复制代码
call muhard(peeq,hard,yieldOld,props(7),props(8),props(9))


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

沙发
发表于 2022-4-11 08:34:35 | 只看该作者
体会一下函数实参虚参的经典例子:
[Fortran] 纯文本查看 复制代码
subroutine 结婚(  男方,女方 )
end subroutine 结婚

call 结婚(  张三,李四 )
call 结婚(  郭靖,黄蓉 )

所以,在调用者的视角,只有  hard,yieldOld
而在函数内部的视角,只有 hard,yieldNew。而函数内部视角的 yieldNew 就是调用者视角的 yieldOld。

8

帖子

2

主题

0

精华

入门

F 币
55 元
贡献
26 点
板凳
 楼主| 发表于 2022-4-11 14:27:59 | 只看该作者
哦哦,我懂了

8

帖子

2

主题

0

精华

入门

F 币
55 元
贡献
26 点
地板
 楼主| 发表于 2022-4-11 14:28:32 | 只看该作者
谢谢大佬!

回复

使用道具 举报

39

帖子

4

主题

0

精华

熟手

F 币
236 元
贡献
93 点
5#
发表于 2022-4-11 15:30:48 | 只看该作者
本帖最后由 gps99 于 2022-4-11 15:35 编辑

语法问题,自己机器上实验对比一下更快捷,印象也更深刻。体会也会更多。。我感觉比提问效果要好。

sub靠表头定义返回多参数应是fortran独有特色,其他语言的函数都是return一个结果(返回数组、字典、元组的算一个,还有函数返回多参数的语言吗? 介绍一下、、) 这个适合数值函数的分析
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 21:05

Powered by Tencent X3.4

© 2013-2024 Tencent

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