主题:module本质
emitdeng
[专家分:0] 发布于 2010-03-28 18:40:00
module的本质含义到底是什么,一直不理解。不是说可以有common传递大量数据的效果吗,为什么我把几个子程序封装在一个module里,然后再主程序用这个即use module,下面调用某个子程序时,打印出子程序里面算过的数组,打印出来结果是0(这个应该是默认的初始值),还是这个被使用的变量值没有被定义过。如果这个module还是 不能像common一样传递数据,那功能其实也一般啊。
请各位多多指教,不知谁有遇到这种问题呢。
最后更新于:2010-03-28 18:44:00
回复列表 (共4个回复)
沙发
臭石头雪球 [专家分:23030] 发布于 2010-03-28 20:05:00
Module A
Real var
Contains
Subroutine B()
write(*,*) var
var = 40.0
End Subroutine B
End Module A
Program Main
Use A
var = 30.0
call B()
call C()
End Program Main
Subroutine C()
Use A
write(*,*) var
End Subroutine C
板凳
mtjs [专家分:160] 发布于 2010-03-29 01:39:00
如果你学过C++的话,我可以打个类比,module的作用有头文件的作用,有类的作用,是一种复合体式的结构定义方式,是Fortran学习C++面向对象编程思想的体现。
3 楼
mtjs [专家分:160] 发布于 2010-03-29 01:57:00
我认为,如果想要很好的理解现代Fortran语言,去学学C++会很有帮助。
4 楼
emitdeng [专家分:0] 发布于 2010-03-29 15:03:00
呵呵多谢指点迷津。c++的优点,就是比其他计算机语言做的好,或者是其他计算机语言所做不到的,可以发挥优势的地方有哪些呢,想先了解了解
我来回复