回 帖 发 新 帖 刷新版面

主题:module本质

module的本质含义到底是什么,一直不理解。不是说可以有common传递大量数据的效果吗,为什么我把几个子程序封装在一个module里,然后再主程序用这个即use module,下面调用某个子程序时,打印出子程序里面算过的数组,打印出来结果是0(这个应该是默认的初始值),还是这个被使用的变量值没有被定义过。如果这个module还是 不能像common一样传递数据,那功能其实也一般啊。
请各位多多指教,不知谁有遇到这种问题呢。

回复列表 (共4个回复)

沙发

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

板凳

如果你学过C++的话,我可以打个类比,module的作用有头文件的作用,有类的作用,是一种复合体式的结构定义方式,是Fortran学习C++面向对象编程思想的体现。

3 楼

我认为,如果想要很好的理解现代Fortran语言,去学学C++会很有帮助。

4 楼

呵呵多谢指点迷津。c++的优点,就是比其他计算机语言做的好,或者是其他计算机语言所做不到的,可以发挥优势的地方有哪些呢,想先了解了解

我来回复

您尚未登录,请登录后再回复。点此登录或注册