| 查看: 2975 | 回复: 1 | |||
[交流]
Module procedure和external procedure之间有区别吗?
|
|
前段时间我把自己写的子程序都放在了Module里面,然后通过use调用。 但这两天突然发现好像不需要专门弄个Module来放这些子程序,直接当成外部子程序就行了。 这样想想,直接当成外部子程序即少写了些代码又少生成了些中间文件,这样不是更好吗? 所以想问下各位高手有必要把子程序放到module里吗,什么时候有必要? 根据fortran95标准上的说明,在调用Module procedure时其接口是explicit的,而在调用external procedure时其接口是implicit的。对于这个说明我有时理解不过来,体会不深。希望有体会的人来指教下。 |
» 猜你喜欢
浙江师范大学是怎么坑我的
已经有15人回复
浙江师范大学是怎么坑我的
已经有4人回复
求教各位大神:2026教育部人文社科青年基金项目何时公示呀?
已经有6人回复
面上有专家说实验设备不是我们单位的
已经有8人回复
科研求助
已经有4人回复
» 抢金币啦!回帖就可以得到:
材料理论模拟或理论计算的作用有多大
+1/198
急招科研助理/博士后
+2/134
美国肯塔基大学Dr. Sheng Tong博士后招聘(空间可控的基因组编辑与肿瘤免疫治疗)
+1/97
各位大佬帮忙分析一下面上意见,是否上会?几个A、B、C?
+1/80
【推免】】中科院国家级人才团队招收27级推免硕士生
+1/75
山东征女友,坐标济南
+1/38
石河子大学211双一流学科分子筛等多孔材料与生物质资源化利用方向招2027级推免生
+1/35
坐标天津,诚征女友,希望遇到有缘之人。
+1/27
27博士申请自荐
+1/26
中国科大-合肥国家实验室冷原子量子网络团队招聘启事
+2/26
深圳大学应用技术学院招聘凝聚态物理博士后
+1/17
中科院西北研究院招收遥感、地信相关专业联培研究生及科研助理!
+1/14
北理工集成电路杰青团队 | 诚招科助理
+1/13
北理工集成电路杰青团队 | 诚招科助理
+1/13
【牙科生物材料特刊征稿】对牙科方向友好(Scopus、DOAJ收录的正规国际期刊)
+1/9
欢迎推免生/准推免生报名(约80名每年)--长期有效--物理/电子等所有理工专业
+1/9
【特刊征稿】BM临床诊断与治疗生物功能材料专题(Scopus、DOAJ 收录)
+1/8
哈工大(深圳)招收工程热物理专业2027入学博士生
+1/3
招聘材料计算,分子动力学模拟相关讲师
+1/2
求一篇文献PDF Journal of Organic Chemistry (2026) 91 (28): 9771–9779.
+1/1
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
btx97: 金币+10, 感谢你这么详细的解答。很有帮助,谢谢。 2013-11-22 05:56:48
小木虫: 金币+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









回复此楼