| 查看: 2927 | 回复: 1 | |||
[交流]
Module procedure和external procedure之间有区别吗?
|
|
前段时间我把自己写的子程序都放在了Module里面,然后通过use调用。 但这两天突然发现好像不需要专门弄个Module来放这些子程序,直接当成外部子程序就行了。 这样想想,直接当成外部子程序即少写了些代码又少生成了些中间文件,这样不是更好吗? 所以想问下各位高手有必要把子程序放到module里吗,什么时候有必要? 根据fortran95标准上的说明,在调用Module procedure时其接口是explicit的,而在调用external procedure时其接口是implicit的。对于这个说明我有时理解不过来,体会不深。希望有体会的人来指教下。 |
» 猜你喜欢
微信指数没变化,科研之友没阅读
已经有4人回复
这种情况还有戏吗
已经有9人回复
同事接到电话了,我却没有
已经有4人回复
准备明年的基金了
已经有5人回复
今年的WR进展到哪一步了?
已经有6人回复
时间戳他又来了
已经有11人回复
小木虫看见有人已经知道结果了
已经有15人回复
这个自发加氧反应的机理是什么?
已经有6人回复
J-J-W不为人知的一面
已经有18人回复
没消息就是被刷了呗
已经有13人回复
» 抢金币啦!回帖就可以得到:
求助2013年-2011年,武汉哪所学校的实验室合成过单价3万/克(或毫升)的剧毒成品?
+5/2420
今年面上没有消息,想来是没了,散个金攒攒人品,为明年祈福
+1/640
诚征女友
+1/263
西湖大学物理学、光学、电子信息方向博士生招生(长期有效)
+5/120
实验室用简易工装、夹具、模具、测试板
+1/82
武汉大学集成与超构光子芯片团队招收博士生
+5/80
Postdoctoral fellow in Medicinal Chemistry, McGill University
+1/77
招收博士后(神经退行性疾病、认知障碍疾病)
+1/61
中国特种设备检测研究院招聘1名高温涂层方向博士后
+2/60
没基金,自费做nature课题值得吗?
+1/46
大连理工大学化学学院界面介导黏附与组装课题组招收推免生
+1/32
西安交通大学补亚忠课题组招收申请考核制博士生
+2/28
西安交通大学补亚忠课题组招聘2027年博士生
+1/27
厦门大学化学化工学院廖洪钢课题组招聘助理1名(全职)
+1/27
诚征女友( 西安 )
+1/25
西安交通大学补亚忠课题组招收申请考核制博士生
+2/22
(Scopus期刊)Biofunctional Materials《生物功能性材料》招募青年编委及征稿
+1/7
中山大学孙逸仙纪念医院潘越教授团队招聘博士后和科研助理
+1/3
氨裂解制氢 + 钯膜纯化,一文看懂分布式超高纯氢的核心组合工艺
+1/3
中山大学招收2027级硕士研究生(增材制造/机器学习)
+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











回复此楼