Fortran Coder

查看: 39569|回复: 6
打印 上一主题 下一主题

[子程序] fortran中call命令

[复制链接]

16

帖子

4

主题

0

精华

入门

F 币
71 元
贡献
45 点
跳转到指定楼层
楼主
发表于 2014-5-19 20:56:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想请教一下大师们,fortran中的call命令就是调用一个子程序然后进行计算,当子程序调用完了后没有任何的输出结果留在主程序里吗?我现在有一个主程序调用一个初始值赋值的子程序,调用格式是CALL INITCOMMON ,如果call命令没有返回值的话,初始值在主程序里面就没有定义了,这是怎么解释该主程序用了CALL命令却有返回值呢?我这的fortran程序全是固定格式,这有影响吗?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-5-19 21:09:42 | 只看该作者
1.有没有输出,看子程序里的代码,有输出代码被执行就会有输出。否则就没有。
2.子程序与主程序间的数据共享,有多种方式,比如实参虚参,比如返回值,比如common,比如module等。(返回值只是其中一种)
3.严谨的代码,应该任何变量均有定义。
4.固定格式只是写法,与 call 的使用无关。

16

帖子

4

主题

0

精华

入门

F 币
71 元
贡献
45 点
板凳
 楼主| 发表于 2014-5-19 21:49:37 | 只看该作者
chuxf 发表于 2014-5-19 21:09
1.有没有输出,看子程序里的代码,有输出代码被执行就会有输出。否则就没有。
2.子程序与主程序间的数据共 ...

嗯嗯,刚借书看到实参虚参的传递,用INTENT(INOUT)定义,不过您总结的更透侧,还有common共享数据,真心感谢您的指点,受教了,谢谢。。。。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

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

地板
发表于 2014-5-19 21:52:06 | 只看该作者
Intent( INOUT ) 等于没有

16

帖子

4

主题

0

精华

入门

F 币
71 元
贡献
45 点
5#
 楼主| 发表于 2014-5-19 22:17:22 | 只看该作者
fcode 发表于 2014-5-19 21:52
Intent( INOUT ) 等于没有

这个定义不是表示形参为输入输出变量吗?

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

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

6#
发表于 2014-5-19 22:19:28 | 只看该作者
猴雨云 发表于 2014-5-19 22:17
这个定义不是表示形参为输入输出变量吗?

默认就是 Intent(INOUT) ,可以忽略。所以没啥用。

16

帖子

4

主题

0

精华

入门

F 币
71 元
贡献
45 点
7#
 楼主| 发表于 2014-5-20 09:24:30 | 只看该作者
fcode 发表于 2014-5-19 22:19
默认就是 Intent(INOUT) ,可以忽略。所以没啥用。

嗯嗯,知道了,谢谢指点
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-30 07:28

Powered by Tencent X3.4

© 2013-2024 Tencent

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