24小时热门版块排行榜    

查看: 3659  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

songjunann

铜虫 (小有名气)

[求助] Fortran的subroutine和function有什么区别,是在于输入输出的特点吗?

Fortran的subroutine和function有什么区别,我看到有的网页上说是在于输入输出的特点: 即function只能允许一个输出,而subroutine可以有很多输出?是这样吗?

比如一个函数

function   monsim(x,...)

.....

是不是输出变量只能是monisim?
如果x值有变化吗?即输入的x是一个值,但是function里面有关于x的赋值表达式,使得x值发生变化,那么是否 在主程序中call  monsim(x,...),会同时读到新的x值
和monsim的值? (因为我看很多function里面都把输出的结果变量名设成和函数一样的名字)。 请多多指教,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

songjunann

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by lurencyj at 2012-03-25 00:32:14:
function接受多个参数,返回一个计算结果。调用的时候,可以直接插入表达式,比如x = AVRAGE(a,b,c)。function AVRAGE 的构造如下:

REAL FUNCTION AVRAGE(X,Y,Z)
     REAL X,Y,Z,SUM
     SUM = X + Y + Z ...

恩,谢谢,我明白了,还有个小问题,
关于subroutine的程序,接受的参数以及返回的变量的数值,是不是都要写在
()里,如 subroutine  calc(A,B,C,sum,...), 我们要判断输入参数,和输出变量都可从(A,B,C,sum,....)里面去判断,因为有时候看别人的程序,不知道输出的是那些,不可能子程序里面有赋值的变量都会输出,是吧?
3楼2012-03-25 03:05:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-03-25 01:41:48
songjunann: 金币+20, ★★★很有帮助, 谢谢 2012-03-28 12:29:30
余泽成: 专家考核 2012-03-30 14:07:28
function接受多个参数,返回一个计算结果。调用的时候,可以直接插入表达式,比如x = AVRAGE(a,b,c)。function AVRAGE 的构造如下:
CODE:
REAL FUNCTION AVRAGE(X,Y,Z)
     REAL X,Y,Z,SUM
     SUM = X + Y + Z
     AVRAGE = SUM /3.0
     RETURN
END

Subroutine适用在当需要返回多个变量数值的情形,但是,调用subroutine的时候,只能用call语句,不能像function那样直接插入表达式。 下面这个subroutine是对A,B,C的求和,以及求和的平方。用call语句调用后,位于sum和sumsq的变量将被改变数值:
CODE:
SUBROUTINE CALC(A,B,C, SUM,SUMSQ)
           REAL A,B,C,SUM,SUMSQ
           SUM = A + B + C
           SUMSQ = SUM **2
           RETURN
END

很女子很弓虽大
2楼2012-03-25 00:32:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
zzy870720z: 金币+2, 专家考核, 谢谢指教 2012-03-25 14:59:37
你可以自己做个测试。呵呵。

如何判断参数是否为输出性质的变量,这个从subroutine 的参数列表()里面是看不出来的,除非在给它们取名字时就标识清楚。

Subroutine里面有赋值的变量确实都会输出!

[ 发自手机版 http://muchong.com/3g ]
很女子很弓虽大
4楼2012-03-25 05:34:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

楼主应该找本教材确认一下

[ 发自手机版 http://muchong.com/3g ]
很女子很弓虽大
5楼2012-03-25 05:36:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +16 Ldrop2023 2026-08-13 20/1000 2026-08-20 11:07 by xskun
[基金申请] 时间戳变了,能看出什么问题? +13 基诺咪客 2026-08-17 17/850 2026-08-20 10:43 by wangyue2015
[基金申请] 只有每年这种时候来逛逛小木虫 +21 yaoyewhu2008 2026-08-20 21/1050 2026-08-20 10:37 by Vivilian
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +55 医学老男孩 2026-08-13 125/6250 2026-08-20 09:02 by 医学老男孩
[基金申请] 今天基金会出结果吗?20260819 +14 kkkl_v 2026-08-19 15/750 2026-08-20 08:21 by sunzitan
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见