| 查看: 2844 | 回复: 1 | |||
[交流]
Module procedure和external procedure之间有区别吗?
|
|
前段时间我把自己写的子程序都放在了Module里面,然后通过use调用。 但这两天突然发现好像不需要专门弄个Module来放这些子程序,直接当成外部子程序就行了。 这样想想,直接当成外部子程序即少写了些代码又少生成了些中间文件,这样不是更好吗? 所以想问下各位高手有必要把子程序放到module里吗,什么时候有必要? 根据fortran95标准上的说明,在调用Module procedure时其接口是explicit的,而在调用external procedure时其接口是implicit的。对于这个说明我有时理解不过来,体会不深。希望有体会的人来指教下。 |
» 猜你喜欢
过年走亲戚时感受到了所开私家车的鄙视链
已经有10人回复
今年春晚有几个节目很不错,点赞!
已经有12人回复
情人节自我反思:在爱情中有过遗憾吗?
已经有13人回复
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有12人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复
» 抢金币啦!回帖就可以得到:
山东征女友,坐标济南
+1/189
坐标广州,征女友
+2/130
天津科技大学海洋与环境学院殷焕顺团队招博士生1名---分析化学领域
+1/81
一个陌生女人的来信
+1/58
大连海事大学轮机学院尚有博士名额
+2/54
国家级青年人才课题组招收2026级硕士研究生
+1/30
国家级青年人才课题组招收2026级硕士研究生
+1/28
英国布里斯托大学诚招博士生,博士后和联合培养生
+1/17
代朋友发 88公务员诚征男友
+1/17
太原理工大学集成电路学院招收2026年博士研究生
+1/6
武汉纺织大学全国重点实验室陈嵘教授团队招收硕士研究生
+1/5
南昌大学资源与环境学院刘进教授团队招收2026硕博研究生
+1/5
英国南安普顿大学禅铎课题组诚招气候动力方向博士后
+1/5
全奖博士 英国利物浦大学+台湾清华大学 双博士学位
+1/5
中国科学技术大学 工程科学学院 国家级人才团队 诚聘博士后
+1/5
天津医科大学基础医学院张恒课题组博士后招聘
+1/4
内江师范学院能源转化与储能实验室诚聘博士1-2人
+1/3
26申博自荐求博导-生物传感分析方向
+1/3
澳科大招收2026秋纳米医学/生物材料方向全奖博士研究生(3月5日18:00截止)
+1/2
深圳大学26级土木工程博士招生
+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













回复此楼