24小时热门版块排行榜    

查看: 2003  |  回复: 7

princeado

金虫 (正式写手)

[交流] Fortran中子程序与函数的区别 已有5人参与

大家好,我是学Fortran的新手,最近看到子程序与函数部分,想请教大家子程序与自定义函数的区别是什么啊?什么时候合适用子程序,什么时候适合用自定义函数啊?谢谢啦
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ioadong

木虫 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+2): 谢谢参与应助!欢迎常来程序语言版! 2011-11-08 18:05:41
子程序没有返回值,函数有返回值.
要返回值时用函数,不需要返回值时用子程序.
以科学的理性代替天然的非理性。
2楼2011-11-08 08:42:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

princeado

金虫 (正式写手)

引用回帖:
2楼: Originally posted by ioadong at 2011-11-08 08:42:36:
子程序没有返回值,函数有返回值.
要返回值时用函数,不需要返回值时用子程序.

还有别的区别吗?
3楼2011-11-08 09:00:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ioadong

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
好像是没有了,我学的是f77
以科学的理性代替天然的非理性。
4楼2011-11-08 09:06:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huruiusst

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+1): 谢谢参与应助!欢迎常来程序语言版! 2011-11-08 18:05:58
感觉子程序应用广泛一些
SLS,MD,HRSG
5楼2011-11-08 10:02:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty: O(∩_∩)O谢谢参与 2011-11-08 13:37:00
余泽成(金币+2): 谢谢参与应助! 2011-11-08 18:06:10
原则上,在不改变程序中各变量值、需要获得一个返回值的情况下,使用 function,另外,function 可以直接用在赋值语句中……

如果需要改变调用参数的值,全局变量的值等情况下,使用 subroutine。
6楼2011-11-08 10:14:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stephenliu89

银虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+1): 谢谢参与应助! 2011-11-08 18:06:19
需要返回值就用函数,不需要返回值就用子程序
Email:stephenliu1989@163.com
7楼2011-11-08 11:37:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+1): 感谢参与 2011-11-10 13:06:12
jjdg:编辑内容 2011-11-10 13:06
初学者可以一律都使用Function。不写result就行了。

这两个东西其实只在使用的时候有区别,比如

a = f(x) + b

这里的f(x)要定义为函数。

如果是独立的功能比如初始化矩阵(系数矩阵),可以这样

call init_coefficient_matrix(A)

显然你也可以用函数

A = init_coefficient_matrix()

[ Last edited by jjdg on 2011-11-10 at 13:06 ]
8楼2011-11-10 11:54:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 princeado 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见