如何在没有名称冲突的情况下在fortran中使用多个模块

时间:2014-03-05 21:34:26

标签: fortran

假设在我的主程序中我想使用两个模块,模块a和模块b。这两个模块独立使用第三个模块,即模块c。我是否认为会产生名称冲突?即,作为USE陈述的结果,模块c中的已声明实体将在模块a和b中有效地重新声明。如果是这样,怎么解决这个问题呢?是否可以在某处使用PRIVATE语句来避免麻烦?

感谢您抽出宝贵时间阅读问题。

1 个答案:

答案 0 :(得分:3)

不会产生名称冲突。

是的,c中的公共实体将在ab中使用,然后在您的主程序中使用,但不会引入歧义。

module c
  integer int
end module c

module a
  use c
end module a

module b
  use c
end module b

program main
  use a
  use b
  ! use c

  int = 1
end program

您的困惑可能是“模块c中声明的实体将被有效重新声明”:存在关联,但使用相同的声明。这与C头文件形成对比。