24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2865  |  回复: 1

btx97

金虫 (小有名气)


[交流] Module procedure和external procedure之间有区别吗?

前段时间我把自己写的子程序都放在了Module里面,然后通过use调用。 但这两天突然发现好像不需要专门弄个Module来放这些子程序,直接当成外部子程序就行了。
这样想想,直接当成外部子程序即少写了些代码又少生成了些中间文件,这样不是更好吗? 所以想问下各位高手有必要把子程序放到module里吗,什么时候有必要?

根据fortran95标准上的说明,在调用Module procedure时其接口是explicit的,而在调用external procedure时其接口是implicit的。对于这个说明我有时理解不过来,体会不深。希望有体会的人来指教下。
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

virtualzx

木虫 (著名写手)


★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
btx97: 金币+10, 感谢你这么详细的解答。很有帮助,谢谢。 2013-11-22 05:56:48
放在module里好处不少!首先不会多写代码吧,只是多了module/contains/end module三行。用module的话可以把相同功能的子程序以及对应的数据封装在同一个module里。同时一个类的定义也可以和与这个类相关的子程序放在一起。

explicit的意思是函数的interface隐含在module里了,就是module本身保存了变量个数、类型、维度之类的信息。如果用implicit interface,编译器编译时只知道过程的名字,甚至如果你的变量个数不对,编译时都无法发现。如果要加入这样的信息,需要在调用这个过程的程序加入interface block。use了一个类的话,就不需要

implicit interface有很多功能都用不了,比如有可选参数的函数,elemental procedure,有自动数组维度的数组(assumed shaped array),generic interface等,你也不能按参数名指定参数(比如call sub(a=x,b=c)),另外只有一个module内部的过程才能调用这个module的private component。基本上f90比较好用的新功能都用不了。external procedure必须在调用时加interface block才能有explicit interface。
2楼2013-11-21 23:35:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 btx97 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085601 材料工程 313分 求调剂 +7 Ong3 2026-03-27 7/350 2026-04-02 11:29 by 3041
[考研] 282求调剂 +8 呼吸都是减肥 2026-04-01 8/400 2026-04-02 11:19 by Sammy2
[考研] 289求调剂 +23 新时代材料 2026-03-27 26/1300 2026-04-02 10:29 by oooqiao
[考研] 一志愿211,335分,0856,求调剂院校和导师 +14 倾____萧 2026-03-27 15/750 2026-04-02 09:21 by olim
[考研] 一志愿北京科技,085601总分305求调剂 +9 半生瓜! 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[考研] 08工科275分求调剂 +13 AaAa7420 2026-03-31 13/650 2026-04-02 06:19 by 286640313
[考研] 295材料工程专硕求调剂 +19 1428151015 2026-03-27 19/950 2026-04-01 22:34 by peike
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +10 哇呼哼呼哼 2026-04-01 11/550 2026-04-01 21:48 by chyhaha
[考研] 275求调剂 +12 waltzh 2026-04-01 12/600 2026-04-01 21:44 by chyhaha
[考研] 286求调剂 +5 lim0922 2026-03-26 5/250 2026-04-01 19:08 by 客尔美德
[考研] 348求调剂 +9 zzzzyk123 2026-04-01 9/450 2026-04-01 14:24 by w虫虫123
[考研] 283求调剂 +9 A child 2026-03-28 9/450 2026-04-01 14:20 by Jaylen.
[硕博家园] 博一被送出联培感觉不适应怎么办 +3 全村的狗 2026-03-31 3/150 2026-04-01 10:44 by 328838485
[考研] 288资源与环境专硕求调剂,不限专业,有学上就行 +25 lllllos 2026-03-30 26/1300 2026-04-01 09:52 by 一只好果子?
[考研] 土木304求调剂 +3 兔突突突, 2026-03-31 3/150 2026-04-01 09:42 by JourneyLucky
[考研] 339求调剂 +5 zjjkt 2026-03-31 5/250 2026-04-01 09:18 by JourneyLucky
[考研] 材料与化工272求调剂 +25 阿斯蒂芬2004 2026-03-28 25/1250 2026-03-31 16:27 by hypershenger
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-31 4/200 2026-03-31 11:56 by jp9609
[考研] 考研调剂 +5 Sanmu-124 2026-03-26 5/250 2026-03-30 13:36 by chemdavid
[考研] 340求调剂 +6 Amber00 2026-03-26 6/300 2026-03-29 12:06 by 无际的草原
信息提示
请填处理意见