| 查看: 2865 | 回复: 1 | |||
[交流]
Module procedure和external procedure之间有区别吗?
|
|
前段时间我把自己写的子程序都放在了Module里面,然后通过use调用。 但这两天突然发现好像不需要专门弄个Module来放这些子程序,直接当成外部子程序就行了。 这样想想,直接当成外部子程序即少写了些代码又少生成了些中间文件,这样不是更好吗? 所以想问下各位高手有必要把子程序放到module里吗,什么时候有必要? 根据fortran95标准上的说明,在调用Module procedure时其接口是explicit的,而在调用external procedure时其接口是implicit的。对于这个说明我有时理解不过来,体会不深。希望有体会的人来指教下。 |
» 猜你喜欢
08工科求调剂290分
已经有5人回复
301求调剂
已经有11人回复
270求调剂
已经有9人回复
一志愿厦门大学材料工程专硕354找调剂!!!
已经有7人回复
311求调剂
已经有14人回复
298求B区调剂
已经有5人回复
一志愿北京科技大学085601材料工程英一数二初试总分335求调剂
已经有9人回复
求调剂推荐
已经有3人回复
一志愿北京理工大学本科211材料工程294求调剂
已经有9人回复
初试301,代码085701环境工程,本硕一致,四六级已过,有二区一作,共发表5篇论文
已经有5人回复
» 抢金币啦!回帖就可以得到:
上海海洋大学与中国水产科学研究院联培 学术型研究生 水产 (A+学科)有调剂名额
+2/148
2026年湖北汽车工业学院汽车材料学院计划招收调剂研究生21名
+1/97
天津科技大学生物质功能材料研究团队 硕士招生
+1/86
岭南师范学院化学化工学院招收生物与医药硕士调剂
+1/86
广西师范大学张凤祥课题组招收5名硕士研究生
+1/40
大连工业大学杰青/长江团队-生物质材料-储能电池方向招收2026级博士生
+1/36
烟台大学环境与材料工程学院新能源材料课题组招硕士研究生
+1/35
【青岛大学】2026年生物与医药申请考核制博士生招生(含少数民族骨干人才)
+1/19
化工毕业三年转电子信息可行吗??各位同行前辈
+1/9
天津科技大学经管学院姚伟教授团队:知识生态研究中心接受管理科学与工程2026调剂生
+1/9
西华大学材料学院表面科学与工程技术科研团队2026年招收研究生
+1/8
齐齐哈尔大学李莉课题组诚招2026级考研调剂生(学硕和专硕)
+1/8
【博士招生】天津理工大学国家杰青王铁课题组招收2026年博士研究生
+1/7
大连理工大学计算机科学与技术学院/人工智能方向2026年研招调剂公告
+1/6
NTU招聘生物微机电系统/微流控/3D打印/可穿戴器件方向全奖博士/博士后
+1/3
招聘电池方向博士
+1/3
2026年-教育部重点实验室招收化学、材料、机械、智能制造、人工智能等相关方向研究生
+1/2
湖南工业大学生医学院接受有机化学、生物与医药等方向的硕士调剂生
+1/2
英国剑桥好房出租
+1/1
常州大学化学及相关专业硕士调剂招生信息
+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














回复此楼